MATLAB如何在循环时向量化这个

时间:2013-02-15 07:48:28

标签: matlab matrix while-loop vectorization

所以这里的想法是将数据读入矩阵,然后通过删除多余的列或行(但是向量化)使该矩阵成为方形矩阵,而不使用任何循环而不使用if /其他。这有可能吗?

这是我用循环和if / else

完成的方式
load file.dat
r = num2str(size('file',1))
c = num2str(size('file',2))
while (r~=c) 
    if (r>c)
        r--
    else (c>r)
        c--
end
res = file(1:r,1:c)
save('squarefile.dat', 'res', '-ascii')

谢谢

1 个答案:

答案 0 :(得分:4)

给定nxm大的矩阵A,我们将创建矩阵B,这是一个方阵,通过从{{1}中删除多余的列或行(取决于哪个维度更大) }:

A

顺便说一句,如果你想覆盖B=A(1:min(size(A)),1:min(size(A))); 并删除多余的信息,这一行也可以写成A=A(1:min(size(A)),...) ......