matlab使用总结

目录

 

1.建立数组

1)建立向量 - 一维数组

2)建立矩阵 - 二维数组 行间用;分隔

矩阵运算 - (1)连接

2 table 

1) table转数组date = datedate{:,:}; 

> tem2 = tem1{:,:};>> tem3  = table2array(tem1);

3 时间

4 Matlab 常用知识

matlab中波浪号~的作用和用法

5 函数列表

6.数学知识

7.Matlab 自定义类


1.建立数组

matlab中的数组像java中的可变长数组(list等),可以不断的增加大小,减少大小

特别的数组 细胞数组cell array,每个cell中可以放任意类型的数据(矩阵,数组,字符,字符串)

1)可以不断的增加大小,减少大小

testerItem = zeros(4,6);

testerInfoSet = cell(1,106); 1*106 返回 106个    {0×0 double} 

增加大小

 testerInfoSet{1,107} = testerItem; 返回 106个    {0×0 double}  第107列为{4×6 double}

删除大小

testerInfoSet(107) = []  删除1行107列的空间 返回 106个    {0×0 double} 

testerInfoSet(:,106) = [] 删除106列 

testerInfoSet(1,:) = [] 删除第1行 

2)清空cell数组1行107列的内容

testerInfoSet{1,107} = [] 返回 106个    {0×0 double}  第107列为 {0×0 double}

3)cell数组的赋值与访问

testerInfoSet{1,107} = [1,2,3] 返回 106个    {0×0 double}  第107列为  {1×3 double}

testerInfoSet{1,107} 

ans =

     1     2     3

注意 

通过小括号(),访问cell数组中的数据,返回的是对应的cell,返回格式是cell格式。
通过大括号{},访问cell数组中的数据,返回的是对应cell的内容,返回格式由内容本身决定,可以使数字或字符。

普通矩阵的删除

 删除矩阵中的一行或一列

删除第四行

a( 4 , : ) = []

删除第5列 

a(: , 5)=[]

 

1)建立向量 - 一维数组

a)列向量 用;分隔

c = [17;  28;  39;  60; 81]

c =

    17
    28
    39
    60
    81

b)行向量 用或者空格分隔

r = [1 18 19 21 41]

r =

     1    18    19    21    41

c = [1:0.1:4] 初始化行向量

2)建立矩阵 - 二维数组 行间用;分隔

x = [1,2; 3,4;4,6 ]; <=> x = [1 2; 3 4;4 6 ];

x =

     1     2
     3     4
     4     6

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]

引用数组中的一部分 (行,列) ,可以用a(:,[3,4])取值取得3,4列的数据

【,】单个删选

例子1:

a =

     1     2     3     4     5
     2     3     4     5     6
     3     4     5     6     7
     4     5     6     7     8

sa = a(2:3,2:4)

sa =

     3     4     5
     4     5     6
例子2:

v1 =a(:,3)

v1 =

     3
     4
     5
     6

zeros(5) 函数创建一个单位矩阵。
ones()函数创建一个所有元素为1的数组 -
eye()函数创建一个单位矩阵。

矩阵运算 - (1)连接

 a = [1,2;2,3;5,6] 

a =

     1     2
     2     3
     5     6

 b= ones(3,2)

b =

     1     1
     1     1
     1     1

a)水平连接 用,

c =[a,b]

c =

     1     2     1     1
     2     3     1     1
     5     6     1     1

垂直连接 用;

 d = [a;b]

d =

     1     2
     2     3
     5     6
     1     1
     1     1
     1     1
(2)min和max

A =

    1.7000    1.2000    1.5000
    1.3000    1.6000    1.9900
    1.7000    1.2000    1.5000
    1.3000    1.6000    1.9900

M2 = max(A,[],2) 求每行最大值

M2 =

    1.7000
    1.9900
    1.7000
    1.9900

M = min(A,[],2) 求每行最小值

M =

    1.2000
    1.3000
    1.2000
    1.3000

矩阵转成行,列向量 https://blog.csdn.net/yushaopu/article/details/81138189

2 table 

datedate table类型

1) table转数组
date = datedate{:,:}; 

> tem2 = tem1{:,:};
>> tem3  = table2array(tem1);

两种方式等价

介绍在MATLAB中如何将表格转化为普通数组或者元胞数组

https://jingyan.baidu.com/article/6f2f55a172aefcb5b93e6cde.html

引用矩阵

[,]单个筛选  :,:全部选择 

 datedate{[1,3,50],[1,2]}

 2018/10/18      2018/10/22 
     2018/8/23       2018/9/3   
     2016/4/8        2016/4/18  

3 时间

datetime时间的默认格式是 format long

'2014-05-26'表示为 26-May-2014

DateNumber = datenum(t) 将datetime转变为序列日期数

 t到(January 0, 0000)的整天数和分数天数

format long 

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime array
   24-Aug-2017 04:17:07
   25-Aug-2017 00:00:00

DateNumber = datenum(t)
DateNumber = 
   1.0e+05 *

   7.369311785639869
   7.369320000000000

DateNumber = datenum(DateString)  速度慢 ,将datetime转变为序列日期数

DateNumber = datenum(DateString,formatIn) 速度快, 将datetime转变为序列日期数

DateString = {'09/16/2007';'05/14/1996';'11/29/2010'};
formatIn = 'mm/dd/yyyy';
datenum(DateString,formatIn)

 

ans = 

      733301
      729159
      734471

4 Matlab 常用知识

1.变量大小写敏感,与sql不同

2.global变量在多个 .m 文件中传递值

3.inf为无穷大量+∞,-inf为无穷小量-∞ 

MATLAB中,0为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成inf,继续执行。

&与&&和||与|

A&B A|B

&,|既可以用于A与B是同类矩阵,也可以A与B都是标量;

&&,||只能用于A与B都是标量来运算,&&与||会短路

https://blog.csdn.net/jiejianmin2666/article/details/78148533

matlab中波浪号~的作用和用法

第一是非

第二是 获取返回值是,忽略部分输出参数

原文 https://blog.csdn.net/songyunli1111/article/details/78501250

matlab各种类型互相转换

https://blog.csdn.net/cckit/article/details/41500491

 

5 函数列表

sum

 S = sum(X) is the sum of the elements of the vector X. If X is a matrix,
    S is a row vector with the sum over each column.

round 

round(X) 将 X 的每个元素四舍五入为最近的整数

Y = round(X,N) 四舍五入到 N 位数:

  • N > 0:舍入到小数点右侧的第 N 位数。

  • N = 0:四舍五入到最接近的整数。

  • N < 0:舍入到小数点左侧的第 N 位数。

如Y = round(pi,6)代表保留pi的六位小数

find find(testtypeRows==j, 3,'first') 返回匹配到类型为j的前三个行index

find(testtypeRows==j, 1,'last') 返回匹配到类型为j的最后一个行index

R = unidrnd(N,m,n) 这里m和n分别指定生成的矩阵R的行数和列数。

R = unidrnd(N) 产生从1到N所指定的最大数数之间的离散均匀随机整数。这种调用方式将产生一个和N具有相同尺寸(行、列、维数)的矩阵R。

4.对数函数

1)自然数对数 log(x)

2)以2为底数的对数 log2(x)

3)以10为底数的对数 log10(x)

4)其他底数对数logM(N)  简单的中间变换,logM(N)=log(N)/log(M),用log10() 以及log2()都可以。

a4=log(64)/log(8) 回车,即以8为底64的对数为2。

https://zhidao.baidu.com/question/324932756.html

6.数学知识

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大。

梯度一词有时用于斜度

斜度,也就是一个曲面沿着给定方向的倾斜程度。斜度 = 向量梯度和所研究的方向的点积 。

反函数y=f ^(-1)(x)的定义域、值域分别是函数y=f(x)的值域、定义域。最具有代表性的反函数就是对数函数与指数函数。

函数y=f(x)和反函数y=f ^(-1)(x)图像关于y=x对称;它们必须是单值函数

三角函数(sinx,cosx,tanx等)和反三角函数(arcsinx,arccosx,arctanx等)

双曲函数(双曲正弦函数sinh和双曲余弦函数cosh,双曲正切函数tanh等)与 反双曲函数(arsinh、arcosh、artanh等)

线性微分方程是指关于未知函数及其各阶导数都是一次方,否则称其为非线性微分方程

自然对数以常数e为底数的对数

相似度,相关性,相关系数,介绍

https://blog.csdn.net/dzjun/article/details/78280621?utm_source=blogxgwz10

https://blog.csdn.net/lambsnow/article/details/79972145

https://blog.csdn.net/sinat_24143931/article/details/78798630

7.Matlab 自定义类

http://www.cnblogs.com/gentle-min-601/p/9785812.html 写的比较好

matlab 自定义类A的非静态方法可以放到@A文件夹中,然后可以组合到类A中;

静态方法放到@A中,调用A的静态方法不识别。

你可能感兴趣的:(MATLAB,细节综述)