Matlab - 替换所有负值和正值

时间:2013-04-19 17:46:56

标签: matlab

我有一个包含许多通道和许多试验的数据集(每个都对应一个单独的.mat文件或数据数组)。

我希望将所有负值替换为-1,将所有正值替换为单行的+ 1(对于i = 1:n(试验次数),将所有值中的正值替换为(22,:)中的+1)以及-1)的所有负值。

希望这很清楚。

非常感谢!

2 个答案:

答案 0 :(得分:6)

如果A是你的矩阵NxN。

待办事项

A(X,:) = sign(A(X,:));

其中X是您要更改的行。

答案 1 :(得分:0)

如果我理解正确的话,你需要做的就是这个,假设你的输入矩阵是A并且你想改变它的第22行中的值:

A(22,(A(22,:)<0)) = -1;
A(22,(A(22,:)>0)) = 1;

例如:

>> A = randint(25,5,[-10,10]);
>> A(22,:)

ans =

   -10    -1    -5     1    10

>> A(22,(A(22,:)<0)) = -1;
>> A(22,(A(22,:)>0)) = 1;
>> A(22,:)

ans =

   -1    -1    -1     1    1