matlab数组与矩阵常用的快捷基本操作

matlab数组与矩阵常用的快捷基本操作

数组:一行or一列;矩阵:多行多列


文章目录

  • matlab数组与矩阵常用的快捷基本操作
  • 一、数组
    • 1.初始化数组
    • 2.数组基本操作
    • 3.数组进阶操作
    • 4.数组判断
  • 二、矩阵
    • 1.初始化矩阵
    • 2.矩阵基本操作
    • 3.矩阵进阶操作
    • 4.矩阵运算
    • 5.矩阵判断


一、数组

1.初始化数组

注:用array_+数字 命名该节例子。

array_1=zeros(10,1); %生成十行1列的0值
array_2=zeros(1,10); %生成一行10列的0值
array_3=1:1:10; %生成一行10列的110值
array_3=linspace(1,5,10); %生成一行线性间隔数组(1开始到5结束,共10个元素等间隔)

2.数组基本操作

array_4=array_3'; %数组转置,结果为十行1列
array_5=array_4(1); %数组第一个值
array_5=array_4(end); %数组最后一个值
array_5=array_4(1:3); %对数组切片,数组第一个值到第3个值

3.数组进阶操作

circshift(array_4,3); %对列向量,向下滚动3个元素
circshift(array_3,[0,3]); %对行向量,向右滚动3个元素
fliplr(array_3); %对行向量,左右翻转

4.数组判断

isequal(array_3,array_3); %数组是否相等-法一(:矩阵中含有NaN则不能使用)
max(abs(array_3(:)-array_3(:)))<1e-15; %数组是否相等-法二(:小于某数看实际条件,该法更好)

二、矩阵

1.初始化矩阵

注:用matrix_+数字 命名该节例子。

matrix_1=zeros(3,7); %第一种初始化:37行,全0赋值
matrix_2=reshape(1:1:21,3,7); %第二种初始化:37行,先按列再按行递增的121个数字
matrix_3=rand(3,7); %生成37行,全随机赋值(一般测试使用)
matrix_4=ones(3,7); %生成37行,全1赋值
matrix_5=eyes(7,7); %生成77行对角矩阵,对角元全1赋值
matrix_6=NaN(3,7); %生成37行全NaN赋值

2.矩阵基本操作

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)); %返回该二维矩阵的最大值

3.矩阵进阶操作

%返回按每列升序排列的新矩阵
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); 

4.矩阵运算

x=[1,2,3;4,5,6]; %1 2 3为第一行,4 5 6位第二行的32行的矩阵
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次方

5.矩阵判断

a=[];isempty(a); %矩阵是否为空
b=[1,2];isrow(b); %矩阵是否为行向量
c=[1;2];iscolumn(c); %矩阵是否为列向量

你可能感兴趣的:(matlab使用,矩阵,matlab,线性代数,算法)