学习笔记-MATLAB常用函数

1、pi = 3.1416

2、指数函数:x = 1:10 ;  exp(x)

3、平方根:sqrt ( afr_HR(w)^2 + afr_HI(w)^2 )

     平方:数组平方时。需要 .^2 

4、画图:

(1)、title ()

title(num2str(lenRvp));         %变量名作为图的标题

title(['a=',num2str(a),'。'])

(2)、figure用于生成一个图窗,可单独使用,而hold on是先用figure生成一个图窗后,要把多个数据画进去的时候才用的,且只用在figure后面,若不画多个数据时则不加hold on,因此,hold on不能单独使用

5、arg min f(x,t) 

      arg是元素(变元)的英文缩写。
       arg min 就是使后面这个式子达到最小值时的x,t的取值
       arg max 就是使后面这个式子达到最大值时的x,t的取值

6、记录程序运行时间  的函数 tic、toc

7、巧用TAB键,进行输入补全操作

8、热键F9   运行选中的代码

9、热键F5   运行脚本中所有的代码

10、取余:

       rem(n,m)或mod(n,m) :    n/m的余数 mod模数求余 rem 求余数

11、while、for、if  

       for i = 1:qrsdatasdirnums      
           while (j <= count)
               qrsdatas(m , n) = f(j); 
               if rem(j,170) == 0
                   m = m+1;
                   n = 1;
               end
           end
       end

12、删除一行或者一列数据

       a=[1,2,2;3,4,4;2,4,4]; a(1,:)=[ ];表示删除第一行a(:,1)=[ ];表示删除第一列

13、

a.向零取整(截尾取整)
fix-向零取整(Round towards zero);
>> fix(3.6)   
ans =
     3
b.向负无穷取整(不超过x 的最大整数-高斯取整)
floor-向负无穷取整(Round towards minus infinity);
>> floor(-3.6)  
ans =
    -4
c.向正无穷取整(大于x 的最小整数)
ceil-向正无穷取整(Round towards plus infinity);
>> ceil(-3.6)   
ans =
    -3
d.向最近整数取整,四舍五入(四舍五入取整)

round-向最近整数取整,四舍五入(Round towards nearest integer);
>> round(3.5)
ans =
     4

14、数组长度可变

       Rdiff = [];
       for i = 1:200                                   
           Rdiff = [Rdiff;diff_s(i),label(i)];
       end

15、归一化

>> [y,ps] = mapminmax(a)
y =
     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4
     5     5     5     5
ps = 
         name: 'mapminmax'
        xrows: 5
         xmax: [5x1 double]
         xmin: [5x1 double]
       xrange: [5x1 double]
        yrows: 5
         ymax: 1
         ymin: -1
       yrange: 2
    no_change: 0
>> [y,ps] = mapminmax(a')
y =
   -1.0000   -0.5000         0    0.5000    1.0000
   -1.0000   -0.5000         0    0.5000    1.0000
   -1.0000   -0.5000         0    0.5000    1.0000
   -1.0000   -0.5000         0    0.5000    1.0000
ps = 
         name: 'mapminmax'
        xrows: 4
         xmax: [4x1 double]
         xmin: [4x1 double]
       xrange: [4x1 double]
        yrows: 4
         ymax: 1
         ymin: -1
       yrange: 2
    no_change: 0

       对行向量的数据进行归一化处理

反归一化:

[ap,ps] = mapminmax(y, ps)


16、size函数

       size(a,1)求矩阵的行数
       size(a,2)求矩阵的列数,相当于length(a)
       size(a)同时求矩阵的行和列数

17、打乱数组的顺序

(1)打乱二维数组的行顺序

       size = size(A,1);
       A(randperm(size), :) = A(1:1:size, :);

(1)打乱以维数组的列顺序

       size = size(A,2);
       A(randperm(size)) = A(1:1:size);

18、数组连接

	假如Inc与 Qnc是两个已知的一维数组,用下面的语句就可以实现你说的要求。
	xn=[Inc Qnc];
	xn为Inc 与Qnc的首尾相连的数组了。可以参考matlab基础相关书籍
19、eval()函数
 
 
 
 
	eval()函数的功能就是将括号内的字符串视为语句并运行
	比如 
	eval('y1=sin(2)')和语句y1=sin(2)等价
	多在循环中使用,可以对多个名字有规则的变量或文件进行操作,比如
		for x=1:5
			eval(['y',num2str(x),'=',num2str(x^2),';'])
		end

20、均值mean

mean(X,1)为列向量的均值;mean(X,2)为行向量的均值;mean(mean(X))为整个矩阵的均值。

21、均方差

 Matlab中有求数组方差的 函数:var;要注意的是var函数所采用公式中,分母不是length(X) ,而是length(X)-1 。

这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。

var没有求矩阵的方差功能,可使用std先求均方差,再平方得到方差。std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。

eg:

>>X=[1,2,3,4]

>>var(X)=1.6667

>> sum((X(1,:)-mean(X)).^2)/length(X)=1.2500

>> sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667

22、标准差

即均方差。标准差的平方即为 方差,而协方差矩阵中的对角元素即为方差

23、cov 协方差函数

http://www.cnblogs.com/chaosimple/p/3182157.html

协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。

cov(x)是对x的列进行协方差计算。

24、矩阵的特征值、特征向量

(1) E=eig(A):求矩阵A的全部特征值,构成向量E。
(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。

25、排序sort

sort函数的调用格式:  

sort(X)   功能:返回对向量X中的元素按列升序排列的新向量。

[Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。

若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序。

在主成分分析中,需要特征值从大到小排列,可以使用下列方式实现:

X = VDV^(-1);
所以可以这样
[V,D] = eig(X);
[Y,I] = sort(diag(D),'descend') % 降序,默认的是升序
V = V(:,I)

26,求和sum

B=sum(A) 对于矩阵A进行每列求和
B=sum(A,dim) 如果dim = 1 对于矩阵A进行每列求和
             如果dim = 2 对于矩阵A进行每行就和
B=sum(A(:))是对矩阵进行全矩阵数值求和。


27、求最大值max

C = max(A)
返回一个数组各不同维中的最大元素。
如果A是一个向量,max(A)返回A中的最大元素。
如果A是一个矩阵,max(A)将A的每一列作为一个向量,返回一行向量包含了每一列的最大元素。

C = max(A,[ ],dim)
返回A中有dim指定的维数范围中的最大值,1是对每列的数据求最大值,2是对每行的数据求最大值。

[val, loc] = max(A,[ ],dim)

返回A中有dim指定的维数范围中的最大值val及其位置loc,1是对每列的数据求最大值,2是对每行的数据求最大值。

28、find 函数

>> class1=2
class1 =
     2
>> class2=3
class2 =
     3
>> y=[1 1 1 2 2 2 2 4 4 4 4 4]
y =
  Columns 1 through 11
     1     1     1     2     2     2     2     4     4     4     4
  Column 12
     4
>> y==class1
ans =
  Columns 1 through 11
     0     0     0     1     1     1     1     0     0     0     0
  Column 12
     0
>> y==class2
ans =
  Columns 1 through 11
     0     0     0     0     0     0     0     0     0     0     0
  Column 12
     0
>> y==class1 | y==class2
ans =
  Columns 1 through 10
     0     0     0     1     1     1     1     0     0     0
  Columns 11 through 12
     0     0
>> find ( y==class1 | y==class2)
ans =RandIndex = randperm( length( a ) ); % 随即打乱数组索引

a = a( RandIndex ); % 用新的索引构造打乱后的数组
二维的数据打乱行序:
RandIndex = randperm( size( a,1 ) ); % 随机的行序
a1 = a1( RandIndex,: ); % 用新的索引构造打乱后的数组
     4     5     6     7

[row,col V] = find(X, ...)  查询满足一定条件的元素的行和列

row 返回满足条件的元素行的位置
col 返回满足条件的元素的列的位置
V   如果X是一个逻辑表达式,则返回一个逻辑数组,一般如果存在满足要求的元素,则返回一个单位列向量。如果不存在满足要求的元素,则返回一个空向量

29、打乱顺序

RandIndex = randperm( length( a ) ); % 随即打乱数组索引
a = a( RandIndex );   % 用新的索引构造打乱后的数组


二维的数据打乱行序:
RandIndex = randperm( size( a,1 ) );  % 随机的行序
a1 = a1( RandIndex,: );   % 用新的索引构造打乱后的数组

30、输出到文件中转行

matlab写入文件时如何换行,真是个麻烦问题?见下面一个例子就解决了,注意打开文件时的参数是'wt'

path='test.txt';
f=fopen(path,'wt');
fprintf(f,'%s\n','test1');
fprintf(f,'%s','test2');
fclose(f);

31、复数的运算

s11=0.761*exp(-151*pi*i/180)

s11 =

  -0.6656 - 0.3689i
需要前面的运算中没有定义 变量 i ,clear清除。

(1)表示

x1=-1+i%实部虚部形式

x2=sqrt(2)*exp(i*(3*pi/4))%复指数形式

(2)取实部、虚部

a=1+2i
shibu=real(a) %实部
xubu=imag(a) %虚部
(3)求复数的模

求复数的模,应用abs()

(4)求共轭复数

conj()


32、MATLAB并行计算   parallel

如果是四核的,进行多核运算前:
matlabpool local 4;
多核运算完以后,要关闭多核运算:
matlabpool close;


33、& 与 &&

&   按位与: 

                 15二进制: (0000 1111) 

                  127二进制: (1111 1111) 
                   按位与自然就是(0000 1111)=15

&&逻辑与:  即为and;

                      具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException










  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数值分析是一门研究数值计算方法及其应用的学科。Matlab作为一个强大的数值计算工具,可以帮助我们更好地学习和理解数值分析。下面是一些Matlab数值分析学习笔记,供您参考: 1. 数值计算基础 - Matlab的数值计算基础包括基本的数学函数、变量定义、矩阵运算等。 - 常用的数学函数包括sin、cos、exp、log等。 - 变量定义和赋值可以使用等号“=”,例如a=2。 - 矩阵运算可以使用“*”表示矩阵乘法,使用“\”表示矩阵求解线性方程组。 2. 数值解法 - 数值解法包括数值积分、数值微分、插值法、最小二乘法等。 - Matlab中的数值积分函数包括quad、quadl、quadgk等。 - Matlab中的数值微分函数包括diff、gradient、jacobian等。 - 插值法可以使用interp1函数实现。 - 最小二乘法可以使用polyfit函数实现。 3. 常微分方程(ODE) - 常微分方程是数值分析中的重要内容之一,Matlab提供了ode45、ode23等函数实现常微分方程的数值解法。 - ode45函数是最常用的常微分方程数值解法之一,可以处理刚性和非刚性方程。 4. 偏微分方程(PDE) - 偏微分方程是数值分析中的另一个重要内容,Matlab提供了pdepe、pde23等函数实现偏微分方程的数值解法。 - pdepe函数可以处理二阶线性偏微分方程,pde23函数可以处理一般的偏微分方程。 5. 数值优化 - 数值优化是数值分析中的一个重要分支,Matlab提供了fminsearch、fmincon等函数实现数值优化。 - fminsearch函数可以用于无约束优化问题,fmincon函数可以用于有约束优化问题。 以上是一些Matlab数值分析学习笔记,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值