matlab学习笔记

《MATLAB R2016a 完全自学一本通》笔记

基础:

pi:π

变量不需要定义,直接使用;大小写敏感;

matlab中用 % 表示注释;

取整函数:floor;ceil;round;fix;

who:查看现有变量

whos:查看现有变量信息

虚数:complex(a,b);a为实部,b为虚部;

Inf:无穷大

NaN:非数值量

逻辑判断中等于:==

xor:异或;

any:全为零返回1;

字符串用单引号:A=‘abc’;

abs:绝对值;

字符串内单引号用‘’(两个单引号)表示;

字符串调用:B = A(2:4);//第2到4个字符;

      B = A(2:-1:4);//第2到4个字符反向输出;

字符串连接:C = [A,B];或C = [A B];

函数句柄:@

  创建函数句柄:Function_Handle = @Function_Filename;

例:A = @cos

则A(x)就相当于cos(x);

结构体:可直接由输入创建:Student.Name = 'Sam';

    也可以通过struct函数创建结构体:Student(2) = struct('Name','Sam',......);//前面没有定义的Student(1)则表示为空值;

数组:A = [1 2 3];

:表示一系列数值:A = 1:10;//A为1到10,步长为1;

         A = 1:2:10;//A为10到10,步长为2;

linspace函数:创建序列:A = linspace(a,b,100);//在[a,b]中创建100个元素的序列;

单元(cell):可以包含任何元素。

  创建单元数组:A = {'x',[1;3;6];10,pi}//注意要使用花括号,逗号分隔单元,分号分行。

cell函数:创建单元数组:A = cell(m,n)//创建mxn的单元数组。

单元访问:A(m,n):访问m行n列的单元:上面的单元数组中,C(1,2)为[10];

     A{m,n}:访问m行n列的单元内容: C{1,2}为10;

单元数组合并:C = {A,B};

删除单元:C{m,n}=[];

reshape函数:改变单元数组形状:reshape(C,M,N);//将C改为M行N列的形状。

map:映射:key值和value值。//是一种容器类型。

  例:A = containers.Map({key,key2,...},{val1,val2,...});

创建空map:A = containers.Map()

keys函数:查看map所有键;

values函数:查看map所有值;

读取map元素:x = A(key);

values函数:访问多个键:例:values(A,{key1,key2});

remove函数:从map中删除key/value对。remove(A,key);

添加key/value对:A(key)=value;//key需与其他key类型一致;

矩阵:

转置:A = A‘;

建立矩阵:A = [1,2;3,4];

ones(n):nxn的元素全为1的矩阵;

zeros(n):nxn的零矩阵;

eye(n):nxn的单位阵(对角元素为,其余为0).

rand(n):

randn():

Random():

diag():

triu():

tril():

size函数:查看矩阵尺寸:size(A);

空矩阵:A = [];

sort()函数:对向量或矩阵升序排序;

矩阵元素引用:A(2,3)//表示A矩阵第二行第三列的元素;

A(1) :矩阵重组为一维数组,返回第一个元素;

A(:,j) :第j列列向量;

A(i,:) :第i行行向量;

A(:,j,k) :第j列到第k列的子矩阵;

A(i:k,:) :第i行到第k行的子矩阵;

A(i:k,j:l) :第i行到第k行,第j列到第l列的子矩阵;

A(:) :矩阵A的每列合并成长的列向量;

A(j:k):返回一个行向量,元素为A(:)中的第j个元素到第k个元素。

单下标和双下标转换:z = sub2ind(size(A),2,3);

          [x y] = ind2sub(size(A),7);

求第四列前4个元素和:sum(A(1:4, 4 ))

:本身可以表示一行或一列的所有元素;

end关键字:表示最后一个元素。

length函数:矩阵最长维的个数;

cat函数:合并矩阵:cat(1,A,B)//按行(竖直方向)合并

          cat(2,A,B)//按列(水平方向)合并

.*:将矩阵中每个对应元素分别相乘。//./和.^同理。

常用函数:

exp:e为底数的x次幂

log:e为底数对x取对数

log10:10为底数对x取对数

sqrt:平方根

mod:取余数

mean:平均值

median:中位数

prod:连乘

sum:连加

sign:<0为-1;=0为0;>0为1。

rem:取余数

diff:差分

sort:排序

fft:离散傅里叶变换

rank:秩

~=:不等于 

 eps:2.2e-16

 字符串:

 字符串写在单引号内。

strcat函数:链接字符串;

字符串数组应使用花括号{}。

  若使用[]则需要维数相同。

 strcmp函数:字符串比较,相同返回1。

 findstr:字符串查找:findstr(A,' ')//查找A字符串中的空格位置。

strrep:字符串替换:strrep(A,'asd','ert');

数组与矩阵:

‘:转置:例:B = A’

A([1,4])=[1 1]//将A的第1,4元素改为1 。

logspace:创建向量:logspace(a,b)

          logspace(a,b,n)

./和.为左除和右除;

dot:数组的点积:C = dot(A,B);//相当于sum(A.*B)

hilb(n):希尔伯特矩阵;

vander:范德蒙矩阵;

C = [A B]  水平合并

C = [A,B]  竖直合并

A(,:)=[]  //删除A矩阵的第二行

det:矩阵的行列式;

trace:矩阵的迹

norm:矩阵或向量的范数;

normest:估计矩阵的二阶范数;

chol:Cholesky分解

lu:矩阵LU分解

svd:奇异值分解

matlab基础:

输入界面语句后加分号;可以暂不执行。

一般采用.M文件来保存文件并执行;

clear:清除所有变量

clc:清除屏幕

变量以字母开头,区分大小写;

global:全局变量

persistent:永久变量

fprintf:显示输出。

input:输入

errordlg():弹出错误对话框

lasterr:弹出错误原因;

控制程序流常用指令:

if-else-end

switch-case

try-catch

for循环

while循环

return指令:函数结束

input和keyboard:

  input:通过键盘输入数值、字符串、表达式等。//Enter结束(eg. value = input('message');//message为显示在屏幕的提示信息)。

  keyboard:通过键盘输入任何合法的matlab指令。//输入并执行return指令结束。

yesinput指令:只能输入。有默认值。 value = yesinput('prompt',default,possib);

pause指令:暂停与恢复。

  pause:暂停,按任意键继续;

  pause(n):暂停n秒;

continue指令:直接传给下一轮迭代。

break指令:推出循环

error和warning指令:

  error('message'):显示出错,终止程序。

  warning('message'):显示警告,继续程序。

脚本和函数:

脚本:即.m文件。

函数:以function开头。//例:function y = average(x)

   一个函数文件定义一个函数。

   文件名应与函数名相同:average.m//两者不同时,以文件名为准。

函数文件组成:

   函数定义:function

   H1行:帮助文本第一行。用于lookfor检索。一般显示函数功能。

   帮助文本:用于help查看函数说明。显示函数功能及使用方法。

   函数体:

   注释:以%开头。

匿名函数:没有函数名,也不是M文件。例如:

   Fxy = @(x,y)x.^y + 3*x*y

   Fxy(2,5) = 62

子函数:M文件中出现的第一个函数为主函数,外界只能访问到这个函数。

    子函数只能被同一文件的其他函数访问。

    子函数同样以function定义。

 私有函数:位于私有目录private下的M函数文件。

     与普通函数构造相同。

     私有函数只能被private直接父目录的M文件调用。

     help,lookfor无效。

重载函数:同名不同功能。

eval和feval函数:

    eval:文本宏工具。

    feval函数:[y1,y2,...] = feval('FN',arg1,arg2,...)   //用变量arg1,arg2来执行指定函数FN。

内联函数:inline('CE')   // CE中不能包含 =

     inline('CE',arg1,arg2)

     inline('CE',n)

 内联函数指令:class、char、argnames、vectorize

函数的函数:以函数名为自变量的函数。

P码文件:

nargin:输入变量

nargout:输出变量

varargin:可变数量输入变量列表

varargout:可变数量输出变量列表

dbstop函数:设置断点

dbclear函数:清楚断点

表2-12 特殊矩阵构建函数P40

表2-18矩阵合并函数P56

表2-26字符串与数值转换P66 

表3-2矩阵分析函数P89

表3-3矩阵分解函数P95

表4-1matlab文件操作指令P111

表4-3特殊变量P113

表4-5M文件函数参数指令集P129

原文地址:https://www.cnblogs.com/ly123456/p/6429168.html