matlab提取已知矩阵元素组成新矩阵

我有一个704*1280的矩阵,想分别从中取出32个32*64的小矩阵并且对这个小矩阵求秩,如何实现,请各位大牛帮忙,谢谢

N=704;M=1280;n=32;m=64;
A=rand(N,M); %生成原始数据矩阵
B=reshape(A,n,m,N*M/(n*m)); %重置矩阵为 32×64×440结构
for k=1:n %选择1-32生成小矩阵
eval(['M' num2str(k) '=B(:,:,k)']); %执行 M1=B(:,:,1)...
mr(k)=eval(['rank(M' num2str(k) ')']); %执行 mr(1)=rank(M1)...求秩,存入mr
end
% B(:,:,x) 表示第 x 个32×64 小矩阵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-08
a = ones(704, 1280);
具体要看你取的32*64的矩阵的位置, 假设你取的矩阵的第一个点的位置为(posx, posy)
使用命令 b = a(posx:pos+31, posy:posy+31)即可
求秩用 c = rank(b)
相似回答