数组:一行or一列;矩阵:多行多列
注:用array_+数字 命名该节例子。
array_1=zeros(10,1); %生成十行1列的0值
array_2=zeros(1,10); %生成一行10列的0值
array_3=1:1:10; %生成一行10列的1到10值
array_3=linspace(1,5,10); %生成一行线性间隔数组(从1开始到5结束,共10个元素等间隔)
array_4=array_3'; %数组转置,结果为十行1列
array_5=array_4(1); %数组第一个值
array_5=array_4(end); %数组最后一个值
array_5=array_4(1:3); %对数组切片,数组第一个值到第3个值
circshift(array_4,3); %对列向量,向下滚动3个元素
circshift(array_3,[0,3]); %对行向量,向右滚动3个元素
fliplr(array_3); %对行向量,左右翻转
isequal(array_3,array_3); %数组是否相等-法一(注:矩阵中含有NaN则不能使用)
max(abs(array_3(:)-array_3(:)))<1e-15; %数组是否相等-法二(注:小于某数看实际条件,该法更好)
注:用matrix_+数字 命名该节例子。
matrix_1=zeros(3,7); %第一种初始化:3列7行,全0赋值
matrix_2=reshape(1:1:21,3,7); %第二种初始化:3列7行,先按列再按行递增的1到21个数字
matrix_3=rand(3,7); %生成3列7行,全随机赋值(一般测试使用)
matrix_4=ones(3,7); %生成3列7行,全1赋值
matrix_5=eyes(7,7); %生成7列7行对角矩阵,对角元全1赋值
matrix_6=NaN(3,7); %生成3列7行全NaN赋值
matrix_row=matrix_2(:,1); %以matrix_2的第一列形成数组
matrix_ch=matrix_2(1,:); %以matrix_2的第一行形成数组
matrix_num=matrix_2(21); %以按列再按行递增的matrix_2的第21个位置的值
max(matrix_2); %返回矩阵每列的最大值数组,min同理为最小值,mean同理为平均值
max(max(matrix_2)); %返回该二维矩阵的最大值
%返回按每列升序排列的新矩阵
sort(matrix_2);sort(matrix_2,'ascend');
%返回按每列降序排列的新矩阵matrix_new,以及新矩阵每个元素在原矩阵的位置矩阵loc
[matrix_new,loc]=sort(matrix_2,'descend');
%返回按第3列升序排列的新矩阵,降序同上加入descend
sortrows(matrix_2,3);
[m,n]=size(matrix_2); %返回矩阵的尺寸=m列n行
length(matrix_2); %返回矩阵中max([m,n])长度
%返回矩阵中值=6的位置:ch1列row1行,若有相同值则返回的ch1、row1位一列数组
[ch1,row1]=find(matrix_2==6);
x=[1,2,3;4,5,6]; %以1 2 3为第一行,以4 5 6位第二行的3列2行的矩阵
y=[1:3;4:6]; %同上
x+1;x+y; %矩阵对向量or矩阵相加,为每个元素对应相加,减号同理
x.*y; %矩阵点乘矩阵,每个元素对应相乘,得到新矩阵
x*y; %矩阵相乘,得到数字
x/y; %x矩阵右除y,等价x*y(逆),等价z*y=x
x\y; %x矩阵左除y,等价x(逆)*y,等价z*x=y
x./y; %矩阵每个元素相除,为y分之x
x.\y; %矩阵每个元素相除,为x分之y
x.^y; %矩阵每个元素相互乘方,为x的y次方
x^2; %矩阵每个元素对向量乘方,为x的2次方
a=[];isempty(a); %矩阵是否为空
b=[1,2];isrow(b); %矩阵是否为行向量
c=[1;2];iscolumn(c); %矩阵是否为列向量