我在 Matlab(2012) 中有一个矩阵,有 3 列和 X 行,X 由用户定义,因此每次都不同。对于这个例子,虽然我将使用一个固定的 5x3 矩阵。
所以我想对矩阵中的每一行执行一个迭代函数,而第三列中的值低于某个值。然后将新值存储在同一矩阵中,因此覆盖原始值。
下面的代码是问题的简化版本。
M=[-2 -5 -3 -2 -4]; %Vector containing random values
Vf_X=M+1; %Defining the first column of the matrix
Vf_Y=M+2; %Defining the secound column of the matrix
Vf_Z=M; %Defining the third column of the matrix
Vf=[Vf_X',Vf_Y',Vf_Z']; %Creating the matrix
while Vf(:,3)<0
Vf=Vf+1;
end
disp(Vf)
我得到的结果是
1 2 0
-2 -1 -3
0 1 -1
1 2 0
-1 0 -2
理想情况下,我想得到这个结果
1 2 0
1 2 0
1 2 0
1 2 0
1 2 0
如果任何值一开始就大于零,则 while 将不会开始,并且一旦一个值大于零就停止。
我希望这是有道理的,我已经提供了足够的信息
感谢您的时间和帮助。