首页 文章 精选 留言 我的

精选列表

搜索[文档处理],共10000篇文章
优秀的个人博客,低调大师

(二)【Matlab】Matlab矩阵处理

【Matlab】 文章目录 A 特殊矩阵 A.a 通用性矩阵 A.b 用于专门学科的特殊矩阵 B 矩阵变换 B.a 对角阵 B.b 三角阵 B.c 矩阵的转置 B.d 矩阵的旋转 B.e 矩阵的翻转 B.f 矩阵的求逆 C 矩阵求值 C.a 矩阵的行列式 C.b 矩阵的秩 C.c 矩阵的迹 C.d 向量和矩阵的范数 C.e 矩阵的条件数 D 矩阵的特征值与特征向量 D.a 矩阵特征值的数学定义 D.b 求矩阵的特征值和特征向量 D.c 特征值的几何意义 E 稀疏矩阵 E.a矩阵的存储方式 E.b 稀疏存储方式的产生 E.c 稀疏矩阵应用举例 关注微信公众号二进制人工智能并回复matlab,即可获取本文的md文件。 回复md,可获得md文件编辑器安装包,可对本文进行二次笔记。 A 特殊矩阵 A.a 通用性矩阵 以上函数调用格式相同,以zeros为例: 例题: A.b 用于专门学科的特殊矩阵 例题: rat:有理数 例子: B 矩阵变换 B.a 对角阵 例题: B.b 三角阵 B.c 矩阵的转置 例子: B.d 矩阵的旋转 B.e 矩阵的翻转 B.f 矩阵的求逆 例题: C 矩阵求值 C.a 矩阵的行列式 例题: C.b 矩阵的秩 例题: C.c 矩阵的迹 例子: C.d 向量和矩阵的范数 矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。 C.e 矩阵的条件数 例题: D 矩阵的特征值与特征向量 D.a 矩阵特征值的数学定义 D.b 求矩阵的特征值和特征向量 例子:A*X(:,1)=D(1)*X(:,1) 例题: X3对角为X1和X2, D.c 特征值的几何意义 y1和y2分别是x1和x2经过A矩阵变换得到的。把 λ 1 、 λ 2 \lambda_1、\lambda_2 λ1​、λ2​当作伸缩因子,y1和y2是x1和x2经过 λ 1 、 λ 2 \lambda_1、\lambda_2 λ1​、λ2​伸缩以后的结果,如图所示。 更进一步地,连续取单位向量x,让它大小保持唯一,那么Ax就将圆弧拉伸,变成椭圆弧。 E 稀疏矩阵 稀疏矩阵指的是零元素个数远远多于非零元素个数的矩阵,如果将大量的零元素也存储起来,必将导致存储空间的浪费。为此,MATLAB为稀疏矩阵提供特殊的存储方式。 E.a矩阵的存储方式 例子: E.b 稀疏存储方式的产生 例子: 例子: 用A的一行元素表示一个稀疏矩阵的元素,相当于A每一行的每个元素是相应的稀疏矩阵元素的一个信息。这些信息组合经过spconvert就可以得到相应的稀疏矩阵元素。 例子: A描述的稀疏矩阵:[2,2,1:第二行第二列的1;2,1,-1:第二行第一列的-1;2,4,3:第二行第四列的3;其他为0。]经过spconvert实现A描述的稀疏矩阵。 例子: A的稀疏存储: E.c 稀疏矩阵应用举例 clc;clear kf1= [1;1;2;1;0]; % 主对角线以下第一条元素 k0 = [2;4;6;6;1]; % 主对角线元素 k1 = [0;3;1;4;2]; % 主对角线以上第一条元素 B = [kf1,k0,k1]; d = [-1;0;1]; A = spdiags(B,d,5,5); % 产生稀疏存储的稀疏矩阵 f = [0;3;2;1;5]; x = A\f %求出解 图片来源: https://www.icourse163.org/search.htm?search=%E4%B8%AD%E5%8D%97%E5%A4%A7%E5%AD%A6%20Matlab#/

优秀的个人博客,低调大师

时间处理工具类

package com.skjd.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class DateUtil { private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); private final static SimpleDateFormat sdfDay = new SimpleDateFormat( "yyyy-MM-dd"); private final static SimpleDateFormat sdfMouth = new SimpleDateFormat( "yyyy-MM"); private final static SimpleDateFormat sdfDays = new SimpleDateFormat( "yyyyMMdd"); private final static SimpleDateFormat sdfTime = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); public static final String DATE_FORMAT_FULL = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_FORMAT_FULL_MSEL = "yyyyMMddHHmmssSSSS"; /** * 获取YYYY格式 * * @return */ public static String getYear() { return sdfYear.format(new Date()); } /** * 获取YYYY-MM-DD格式 * * @return */ public static String getDay() { return sdfDay.format(new Date()); } /** * 获取YYYYMMDD格式 * * @return */ public static String getDays(){ return sdfDays.format(new Date()); } /** * 获取YYYY-MM-DD HH:mm:ss格式 * * @return */ public static String getTime() { return sdfTime.format(new Date()); } /** * 传入一个时间字符串 * 判断此时间在晚上23点到凌晨6点经过了多久分钟 * YYYY-MM-DD HH:mm:ss */ public static int getNightSum( String s) { Date date = fomatDate(s); String str = sdfTime.format(date); String str2 = str.substring(11, 13); int i = Integer.parseInt(str2); if(i>=23){ return Integer.parseInt(str.substring(14, 16)); }else if(i<6){ i=6-i-1; int j=60-Integer.parseInt(str.substring(14, 16)); return i*60+j; }else { return 0; } } /** * @Title: compareDate * @Description: TODO(日期比较,如果s>=e 返回true 否则返回false) * @param s * @param e * @return boolean * @throws * @author luguosui */ public static boolean compareDate(String s, String e) { if(fomatDate(s)==null||fomatDate(e)==null){ return false; } return fomatDate(s).getTime() >=fomatDate(e).getTime(); } /** * 得到时间戳 * * @param null * @return String 当前日期时间戳(yyyyMMddHHmmssSSSS) */ public static String getTimeStamp() { try { Calendar now = Calendar.getInstance(TimeZone.getDefault()); SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_FULL_MSEL); sdf.setTimeZone(TimeZone.getDefault()); return (sdf.format(now.getTime())); } catch (Exception e) { return getCurDateTime(); // 如果无法转化,则返回默认格式的时间。 } } /** * 得到当前日期 * * @return String 当前日期 yyyy-MM-dd HH:mm:ss格式 */ public static String getCurDateTime() { Calendar now = Calendar.getInstance(TimeZone.getDefault()); // String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; DateFormat sdf = new SimpleDateFormat(DATE_FORMAT_FULL); sdf.setTimeZone(TimeZone.getDefault()); return (sdf.format(now.getTime())); } /** * 格式化日期 * * @return */ public static Date fomatDate(String date) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return fmt.parse(date); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 校验日期是否合法 * * @return */ public static boolean isValidDate(String s) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); try { fmt.parse(s); return true; } catch (Exception e) { // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 return false; } } public static int getDiffYear(String startTime,String endTime) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); try { long aa=0; int years=(int) (((fmt.parse(endTime).getTime()-fmt.parse(startTime).getTime())/ (1000 * 60 * 60 * 24))/365); return years; } catch (Exception e) { // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 return 0; } } /** * <li>功能描述:时间相减得到天数 * @param beginDateStr * @param endDateStr * @return * long * @author Administrator */ public static long getDaySub(String beginDateStr,String endDateStr){ long day=0; java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date beginDate = null; java.util.Date endDate = null; try { beginDate = format.parse(beginDateStr); endDate= format.parse(endDateStr); } catch (ParseException e) { e.printStackTrace(); } day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000); //System.out.println("相隔的天数="+day); return day; } /** * 得到n天之后的日期 * @param days * @return */ public static String getAfterDayDate(String days) { int daysInt = Integer.parseInt(days); Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 Date date = canlendar.getTime(); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdfd.format(date); return dateStr; } /** * 得到n天之后是周几 * @param days * @return */ public static String getAfterDayWeek(String days) { int daysInt = Integer.parseInt(days); Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 Date date = canlendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("E"); String dateStr = sdf.format(date); return dateStr; } /** * 将日期对象转为时间戳字符串 * @param time * @return * @throws ParseException */ public static String dateutil(String time) throws ParseException{ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date date = format.parse(time); time = ""+date.getTime(); return time; } /** * 将日期对象转为时间戳 * @param time * @return * @throws ParseException */ public static Long dateutilToLong(String time) throws ParseException{ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date date = format.parse(time); Long time2 = date.getTime(); return time2; } public static String parseDateToStr(Date thedate) { // String format = "yyyy-MM-dd"; return parseDateToString(thedate, DATE_FORMAT_FULL); } public static String parseDateToString(Date thedate, String format) { DateFormat df = new SimpleDateFormat(format); if (thedate != null) { return df.format(thedate.getTime()); } return ""; } /** * 获取当前时间前一个月的时间 * @param args */ public static String getDateLastMouth(){ Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.MONTH, -1); Date m = c.getTime(); return sdfTime.format(m); } /** * 获取当月第一天的日期 * @return */ public static String getMouthNoOne(){ return sdfMouth.format(new Date())+"-01 00:00"; } public static void main(String[] args) { boolean b = compareDate("2018-08-18 00:00", DateUtil.getTime()); System.out.println(b); } }

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册