关于Matlab的一些计算应用操作写在另一篇博客里
https://blog.csdn.net/Netceor/article/details/95048763
目录
想查找相关内容也可在页面按ctrl+F搜索文字
一、常用运算符
+、-、*、/、\(表示AX=B or XA=B的解:A\B和B/A)、^
.*、./、.\、.^
==、~=、>、<、>=、<=
&、|、~
二、快捷操作
clc指令:清空指令窗内容,对工作环境中的全部变量无任何影响
close:关闭当前的Figure窗口
close all:关闭所有的Figure窗口
clear:清除工作空间的所有变量
clear x y:清除工作空间的x,y变量
clear all:清除工作空间的所有变量,函数,和MEX文件
上下方向键:回溯指令
Esc:清空编辑行
Home:置光标于行首。
class(x):可用来查看数据x的类型
ctrl+r:快速注释(先选中代码范围)
ctrl+t:取消注释(先选中代码范围)
ctrl+I:智能缩进,整理代码格式(先选中要整理的代码范围)
Tab(或ctrl+[):手动缩进,向后缩进
Shift+Tab(或ctrl+]):手动缩进,向前缩进
三、数组创建
在Matlab中,数组中的逗号也可以用空格代替
%x1:生成1到5
x1=1:5
%x2:生成从1到6,间隔为2
x2=1:2:6
A=ones(3) %3×3的1矩阵
%从1到5生成100等间隔的数
y1=linspace(1,5)
%从1到6生成3个等间隔的数
y2=linspace(1,6,3)
%从-1到1输出,间隔0.2
x=(-1:0.2:1)
四、矩阵
1.对角矩阵
创建矩阵b,分别通过triu和tril可获得上对角阵和下对角阵,结合获得b的对角矩阵
2.分块矩阵
3.魔方矩阵
magic():用于产生魔方矩阵,它的每行、列以及对角线的数之和相等。该和的值为1+2+3+.....+n^2的和再除以n,n必须为大于或等于3的整数。
reshape(A,m,n):将矩阵A元素按单下标排成m行n列(元素不变,调整顺序)
repmat(a,2,8):将矩阵块a当元素铺放成m×n块
四、运算
1.代数运算
a=[2 3;4 5;6 7];
b=ones(3,1); %三行一列1矩阵
c=[a b];b=[b a]; %合并
u=c+d;v=c-d; %加减法
t1=c*b; %矩阵乘法
t2=c.*b; %数组乘法
t3=a\b; %a左除b(a的逆×b)
t4=ones(1,2)/a; %a右除e
t5=c.\d;t6=d./c; %数组点除
t7=c.^d;t8=c.^2;t9=2.^c; %数组点乘方
t10=d^2; %矩阵乘方
z=[a,sin(a)]
det(A) %行列式计算
inv(A) %逆矩阵计算
rref(A) %最简阶梯形
[V,D]=eig(A) %特征值与特征向量计算
%矩阵、数组的共轭转置A'与转置A.'
A=[1,3,5;2,4,6;3,5,9]; B=[1,3,5;2,4,6;1,1,1];
dB=det(B),nA=inv(A)
rref([A,B])
C=ones(3),[V,D]=eig(C)
cT=(A+i*B)', T=(A+i*B).' , rT=A'
%提取矩阵对角元与构造对角阵可用diag(x),当x为矩阵则返回对角元向量,当x为向量则返回对角阵。
A=A' %(共轭)转置----没有复数时与转置没有差别
A=A.' %转置----真正的转置
2.逻辑运算与关系运算
A=[1,2;3,4],B=[0,2;4,5]
C=A>=B %A赋值C,判断C中>=B的元素,返回布尔值(0或1)
D=A==B %A赋值D,判断C中==B的元素,返回布尔值
A~=B %A不等于B的元素,返回布尔值
C|D %C或D中有1则返回1
C&D %C和D中同为1则返回1
五、读入xls文件
如果发现以下报错,可参考该百度经验,亲测有效。
错误使用 xlsread (line 251)
https://jingyan.baidu.com/article/454316ab62f209f7a7c03a3d.html
•读出Execl数据:N = xlsread('filename', 'sheet', 'range')
•写入Execl数据:xlswrite('filename', M, 'sheet', 'range')
示例:
n=xlsread('DRINK.xls')
n=xlsread('DRINK.xls','DRINK')
n=xlsread('DRINK.xls','DRINK','A1:D5')
六、找元素
x=-3:5;
L=abs(x)>2;
y=x(L); %y为x中绝对值大于2的下标对应的数
I=[1,3,4];
x=x(I) %x重新赋值为x中下标为1,3,4的值
m=magic(3)
m=m(:) %将magic(3)元素从上到下,从左到右,一列输出
a=[16 2 3 13;5 11 0 8;9 7 6 12;4 14 -1 2]
a(1:3,3) %a中第一到3行的第三个元素
b=a(1:3,:) %a中1到3行的全部元素
k=find(A<=3) %返回数值为3元素的单下标
[s,t]=find(A<=3) %返回数值不超过3元素的全下标
% 错误:A(s,t) 正确:A(k)
% 至于A(s,t)输出什么可以自己尝试一下
七、删元素
c(:,1)=[] %删除第一列
c(1:2,:)=[] %删除第一、二行
八、字符串数组
class(x)可用来查看数据x的类型
a='This is a ''VIP'' test !' %创建字符串
size(a) %查看字符串大小
b=a(end:-1:1) %倒序
size(b)
a([12:14]) %指定范围字符串
S=deblank(C) %删除字符串结尾处的空格
blanks (n) %产生n个空格
upper(S) %大写所有元素
lower(S) %小写所有元素
strcmp('stringl','string') %字符串比较,返回0,1
findstr(str1,str2) %str1中查找str2,返回短串起始位置
strrep(s1,s2,s3) %用s3替换s1中的s2
int2str(A),num2str(A),str2num(S) %字符串与数值转换,int to str、num to str、str to num
%示例
a='Hello "World"'
s1=upper(a)
s2=lower(a)
%提取文本中的关键词:
text='aaa bb cab sb bb chj'
K=findstr(text,'bb')
n=length(K)
a='This is a good man!'
s=[a,blanks(2)]
deblank(s)
strrep(s,'good','bad')
i=findstr(s,'is')
b=eval('[1,2;3,4]')
关于eval的用法可以参考以下博客