我在MATLAB中有一个n x n矩阵。我正在尝试遍历此矩阵的每一行和每一列。如果每个元素中的值高于某个阈值,我想用 1 替换该元素。如果每个元素中的值低于某个阈值,我想用 0 替换该元素。
我正在尝试使用两个 for 循环,但它并没有引导我去任何地方。有什么建议吗?
我建议逻辑索引。
A = randi([1 20],6,6);
Threshhold = 13;
A(A<Threshhold) = 0;
A(A>=Threshhold) = 1;
以前:
>> A = randi([1 20],6,6)
A =
7 1 20 3 2 15
16 13 11 3 11 7
5 2 1 5 10 16
5 14 8 14 11 8
16 11 7 20 20 17
10 1 2 10 6 12
后:
>> A
A =
1 0 0 0 1 0
0 0 1 0 0 0
0 0 0 1 0 0
1 1 1 0 1 1
0 0 0 1 0 0
0 0 0 0 0 0
希望有帮助。
更新:
根据@Cris Luengo的评论, 其他方法包括A=double(A>=Threshold)
或等效A=+(A>=Threshold)
。