matlab中取一个矩阵的一部分方法如下:
格式A(m,n),用于提取矩阵A中符合m,n要求的部分
1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。
2、提取某行某列
A(:,n)提取第n列的所有元素,如A(:,3)提取第三列的所有元素;
A(m,:)提取第m行的所有元素,如A(3,:)提取第三行的所有元素;
3、提取任意的某部分并重新组成新的矩阵,连续或不连续,单调或不单调
数字指定:A([1 2 3 4],[2 3]) 返回1 2 3 4行2 3 列的数据;
步长指定:A(1:2:end,:) A(2:2:end,:)分别提取矩阵A的奇数行和偶数行数据;
A(end:-1:1,:) A(:,end:-1:1)分别返回A矩阵行倒序和列倒序的矩阵
变量指定:A(B(:,1),:),其中B的第一列含有数据,用来指定取矩阵A的哪些行。
4、变量指定,假设一个矩阵X1中存储的是坐标,用矩阵X1的坐标访问矩阵labels_left中对应的元素:
for i = 1:size(X1,1)
x = labels_left(X1(i,2),X1(i,1));%匹配对1在左图中的label数
end
扩展资料:
matlab中取一个矩阵的一部分的用法:
1、提取大矩阵的一列、一行元素:
一列元素: A(:,j)表示提取A矩阵的第j列全部元素
一行元素: A(i,:)表示提取A矩阵的第i行元素,
于是我们有,A(i, j)表示提取A矩阵的第i行第j列的元素。
2、提取多行多列元素
多行元素: A(i:i+m,:)表示提取A的第i行到第i+m行的元素。
多列元素: A(:,j:j+n)表示提取A的第j列到第j+n列的元素。
提取块: A(i:i+m, j:j+n)表示的是mxn的一个子块的元素。
参考资料:
matlab中要取一个矩阵的一部分,可以参考以下内容:
比如说有一个5×5的矩阵,想取它右下脚3*2的矩阵,应该用命令:
a=zeros(5,5)
b=a(3:5,4:5)%取a的(3-5行,4-5列)
b即为所取
matlab中取一个矩阵的一部分(比如格式A(m,n),用于提取矩阵A中符合m,n要求的部分):
1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。
2、提取某行某列
A(:,n)提取第n列的所有元素,如A(:,3)提取第三列的所有元素;
A(m,:)提取第m行的所有元素,如A(3,:)提取第三行的所有元素;
3、提取任意的某部分并重新组成新的矩阵,连续或不连续,单调或不单调
数字指定:A([1 2 3 4],[2 3]) 返回1 2 3 4行2 3 列的数据;
步长指定:A(1:2:end,:) A(2:2:end,:)分别提取矩阵A的奇数行和偶数行数据;
A(end:-1:1,:) A(:,end:-1:1)分别返回A矩阵行倒序和列倒序的矩阵
变量指定:A(B(:,1),:),其中B的第一列含有数据,用来指定取矩阵A的哪些行。
4、变量指定,假设一个矩阵X1中存储的是坐标,用矩阵X1的坐标访问矩阵labels_left中对应的元素:
for i = 1:size(X1,1)
x = labels_left(X1(i,2),X1(i,1));%匹配对1在左图中的label数
扩展资料:
例子:
原矩阵为A=[1 2 3;4 5 6;7 8 9;10 11 12],现在要生成B=[1 2;4 5;7 8],即提取了原来矩阵的1、2两列和1、2、3三行。
B = A(1:3, 1:2)
即使提取的行列不连续或者次序需要颠倒也可以写成诸如A([1,3,6], [4,3,1,5])这样的形式。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。
Matlab 矩阵元素与子矩阵的提取
>> %矩阵元素的提取
>> A=[1 2 3;4 5 6;7 8 9;10 11 12]
A =
1 2 3
4 5 6
7 8 9
10 11 12
>> A(3,1)%提取 A 矩阵第 3行,第 1列的元素
ans =
7
>>
>> %通过元素序号提取元素(矩阵元素序号与它的存储顺序是一一对应的! )
>> A(6)
ans =
5
>> %Matlab中矩阵元素按列存储,首先是第 1列,其次是第 2列 ......
>>
>> %使用函数 find(c)查找符合条件的矩阵元素的行和列
>> %函数 find(c)的使用格式 [row,col]=find(c),c一般为逻辑表达式; row 返回满足条件的元 素的行号, col 返回满足条件的元素的列号。
>> a=[12 34 26 17 21;61 50 89 12 8;25 62 91 23 47]%查找 a 矩阵中大于等于 20、小于等于 60的元素。
a =
12 34 26 17 21
61 50 89 12 8
25 62 91 23 47
>> [r,c]=find(a>=20&a<=60);
>> b=find(a>=20&a<=60);
>> disp('符合条件的矩阵元素的行号和列号:'),[r,c]
符合条件的矩阵元素的行号和列号:
B = A(1:3, 1:2)
即使提取的行列不连续或者次序需要颠倒也可以写成诸如A([1,3,6], [4,3,1,5])这样的形式
广告 您可能关注的内容 |