MATLAB如何对while循环进行矢量化

MATLAB如何对while循环进行矢量化,matlab,matrix,while-loop,vectorization,Matlab,Matrix,While Loop,Vectorization,因此,这里的想法是将数据读入一个矩阵,然后通过删除多余的列或行,使该矩阵成为一个平方矩阵,但矢量化,根本不使用任何循环,也不使用if/else。这可能吗 这就是我使用循环和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 = f

因此,这里的想法是将数据读入一个矩阵,然后通过删除多余的列或行,使该矩阵成为一个平方矩阵,但矢量化,根本不使用任何循环,也不使用if/else。这可能吗

这就是我使用循环和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')

谢谢

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

B=A(1:min(size(A)),1:min(size(A)));

顺便说一下,这一行也可以写成
A=A(1:min(大小(A)),…)
如果您想覆盖
A
并删除多余的信息…

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

B=A(1:min(size(A)),1:min(size(A)));

顺便说一句,如果您想覆盖
A
并删除多余的信息,这一行也可以写为
A=A(1:min(大小(A)),…)

对不起-但这肯定是计算最小值最低效的算法之一。@bdecaf-我正在研究另一个用O(2^n)计算最小值的算法;-)这是无效的matlab语法。我猜你的意思是
r=r-1
c=c-1
而不是
r--
c--
同样,num2str的使用没有意义,所以跳过这一部分。对不起-但这一定是计算最小值最低效的算法之一。@bdecaf-我正在研究另一个用O(2^n)计算最小值的算法;-)这是无效的matlab语法。我猜你的意思是
r=r-1
c=c-1
而不是
r--
c--
同样,num2str的使用没有意义,所以跳过这一部分。