天天看點

matlab數組與矩陣常用的快捷基本操作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列的1到10值
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); %第一種初始化: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指派
           

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位第二行的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次方
           

5.矩陣判斷

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

繼續閱讀