MATLAB

2-matlab使用笔记之数组与矩阵

2019-06-18  本文已影响1人  aasdfghjkll

       本文笔记来自《MATLAB-R2014a完全自学一本通》,记录了一些常用的操作,更复杂的操作请看书本~


【目录】

1.矩阵


【正文】

1.矩阵

矩阵与数组的联系主要体现在:在MATLAB中,矩阵是以数组的形式存在的,因此一维数组相当于向量,二维数组相当于矩阵,所以矩阵是数组的子集

1.矩阵运算

矩阵运算包括矩阵求和、求平均、求最大最小值等

例如:求矩阵中元素的平均值

分为按列平均、按行平均和全部平均

A=rand(3)
a=mean(A,1)       %按列平均
b=mean(A,2)       %按行平均
c=mean(A(:))       %全部平均

结果如下:

2.矩阵结构

矩阵的基本操作主要有矩阵的构建、维度、矩阵大小的改变、矩阵的索引、矩阵属性信息的获取、矩阵结构的改变等。

在MATLAB中,单个实数或者复数都是以矩阵的形式存储的,单个数据或由单个数据构造的矩阵都是标量。

a. 矩阵的构造

b. 矩阵大小及结构的改变

c. 矩阵的数据类型
下表是矩阵数据类型的测试函数,从中也可以看出矩阵的数据类型的种类

矩阵数据类型的测试函数

下面是cell单元的相关内容:

cell单元(也叫矩阵的元胞类型结构)

cell每个单元的数据之间用逗号,隔开,最外层用{}大括号括起来,单元内可以用不同格式的数据

Matlab中的向量是按列存储的(按列存储是指在多维数组内存中是一列一列逐个放元素的),关于为什么按列存储,比较合理的说法是在设计Matlab语言时,最流行的语言是Fortran,而Fortran恰好是按列存储。
看这个讨论可以更加了解:matlab和Fortran二维数组为什么按列优先存储?

\diamond 创建单行cell

\diamond 创建多行cell

cell(m,n)表示创建一个m行n列的cell:

向其中填数据:

获取元胞中的数据:
输入:
A{1,2}(1)
返回2

A{1,2}(方括号)返回的是cell变成的矩阵,所以可以通过A{1,2}(1)得到其中的第1个元素,而通过A(1,2)(圆括号)返回的是一个矩阵,矩阵中的元素是cell类型的,所以需要写成以下方式:

x=A(1,2);
x{1};   %得到cell变成的矩阵
x(1) ;  %到此得到第一个元素

d. 矩阵占用的内存
whos命令:

3.矩阵的保存和加载

a. 矩阵在MATLAB中的存储方法
列优先的原则依次放置,例如矩阵:
C=\left( \begin{matrix} 1 & 4\\ 2 & 5 \\ 3 & 6 \end{matrix} \right)
(就是上面出现过的矩阵~),它的存储方式在空间中是这样的:

1 2 3 4 5 6

而不是这样的:

1 4 2 5 3 6

b. 矩阵元素的寻址
1)下标寻址方法:
1矩阵的构造矩阵下标索引部分已经记录了具体的使用方法
2)线性寻址
单一下标,该下标是通过矩阵的双下标通过换算得到的,A(i,j)的单一下标为:A((j-1)·m+i),j是所在列,m是总行数
3)矩阵元素的赋值
为单个元素赋值的例子:A(i,j)=value
删除矩阵中的所有元素:
A=[];
4)矩阵元素的扩展与删除
用例子来理解,对矩阵:

A=[1,2;3,4]

%结果:
% A =
% 
%      1     2
%      3     4

整行赋值:

A(3,:)=3

%结果
% A =
% 
%      1     2
%      3     4
%      3     3

A(4,2)=5;

%结果
% A =
% 
%      1     2
%      3     4
%      3     3
%      0     5

默认补一行,没有指定数值的地方会补0

A(2,:)=[]

%结果
% A =
% 
%      1     2
%      3     3
%      0     5

此外,还有矩阵合并的函数可以进行更多矩阵的操作:

矩阵合并函数

用到时继续更新🏃

上一篇下一篇

猜你喜欢

热点阅读