《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