有一个较大的n行16列的矩阵A,现有一个1行m列的矩阵B,用矩阵b的元素代表矩阵A的行数,去提取矩阵A的子矩阵,如何实现?
for i = 1:m
A(m)=A(B(:,i),:);
end
该代码可以实现上述功能,用for循环分别将矩阵B中每个元素取出来,作为矩阵A的行数,矩阵A的列数用:表示全部取
感谢回答,但好像不起作用
A=data;
B=group1;
for i = 1:4319
A(i,:)=A(B(:,i),:);
end
请问如何导出矩阵,光这样不显示结果
A=data;
B=group1;
for i = 1:4319
a(i)=A(B(:,i),:);
end
换成这样,相当于把取出来的数据存在向量a中
C=A(B,:)
上面的语句得到的C就是你想要的结果,当然前提是B里面的元素值不超过A的行数的边界,要不然会出错。下面是一个举例:
1、B是列向量(本来想贴图片的,不知道为什么图片老是弄不上来,你可以自己试一下)
>> a=ceil(rand(4,6)*10)
a =
7 6 8 2 3 10
1 10 4 5 7 4
4 2 4 7 10 6
1 8 7 2 5 5
>> b=[1;3;4]
b =
1
3
4
>> c=a(b,:)
c =
7 6 8 2 3 10
4 2 4 7 10 6
1 8 7 2 5 5
2、B是行向量
>> d=b'
d =
1 3 4
>> c=a(d,:)
c =
7 6 8 2 3 10
4 2 4 7 10 6
1 8 7 2 5 5