我有一个负值和正值矩阵,我尝试使用if循环将负值变为正值:
if A(A<0)
A = A.*(-1);
end
Run Code Online (Sandbox Code Playgroud)
但它似乎没有做任何事情,做什么?
只需使用abs:
>> A = [-1,2,-3,4,-5]
A =
-1 2 -3 4 -5
>> abs(A)
ans =
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
使用abs是正确的做法,但是如果你遇到类似(但不完全相同)的问题,你要找的模式是这样的:
A(A < 0) = -A(A < 0);
Run Code Online (Sandbox Code Playgroud)
这将使用逻辑索引上A,选择消极因素和否定他们.