1.矩阵下标转换
在MATLAB中有“双下标” 和 线性下标
转换方法 A为m*n的矩阵,A(p,q) 即 第p行,第q列 对应的线性下标为 u = (q-1)*m + p。
函数转换法:sub2ind:用双下标计算单下标(线性下标) ind2sub: 用单下标计算双下标
因此我们访问单个元素就可以用这两种方法了!
2.获取矩阵信息的函数
length 得到矩阵最长维长度
ndims 得到矩阵的维数
numel 得到矩阵的元素个数
size 得到矩阵指定维数的长度
3.高维数组
用函数直接创建标准高维数组 如 rand ones zeros randn函数等
ones(2,2,3)
ans(:,:,1) =
1 1
1 1
ans(:,:,2) =
1 1
1 1
ans(:,:,3) =
1 1
1 1
用下标注解索引生成高维数组
A(4,2,3) = 5
A(:,:,1) =
0 0
0 0
0 0
0 0
A(:,:,2) =
0 0
0 0
0 0
0 0
A(:,:,3) =
0 0
0 0
0 0
0 5
还可以用cat repmat reshape函数来建立高维数组
a = ones(2);
>> b = eye(2);
>> c = rand(2);
>> T = cat(3,a,b,c)
T(:,:,1) =
1 1
1 1
T(:,:,2) =
1 0
0 1
T(:,:,3) =
0.8147 0.1270
0.9058 0.9134
3.高维数组的操作函数
squeeze 删除高维数组的 “单一维”
flipdim 用于高维数组翻转操作 形式 flipdim(A,n) A为待翻转数组,n为翻转基准维。
shiftdim 用于移动数组维号 如 A 是一个4*3*2的数组,shiftdim(A,2)将把数组移维变为(2*4*3) 2标识左移2