【发布时间】:2013-08-18 06:48:55
【问题描述】:
我有一个问题: 假设我有一个矩阵
A =
-1 2 -3
-4 5 -6
-7 8 -9
我把它转换成列矩阵
B = A(:)
B =
-1
-4
-7
2
5
8
-3
-6
-9
假设我想强制第一列元素位于特定范围内 (-range1 : range1),第二列元素位于 (-range2 : range2) 内,第三列元素位于 (-range3:range3) 内。我尝试通过实现此代码来做到这一点:
range1 = 0;
range2 = -5;
range3 = 0;
B(B(1:3,1)<range1)=10;
B(B(4:6,1)>range2)=0;
B(B(7:9,1)<range3)=20;
我得到的答案是这样的:
B =
20
20
20
2
5
8
-3
-6
-9
而我应该得到的正确答案是:
B =
10
10
10
0
0
0
20
20
20
我做错了什么?请帮忙。
【问题讨论】:
-
请查看此链接:stackoverflow.com/questions/18201729/…。这是这个问题的延续。
-
您确定您的实际 B 输出是否正确?符合你提到的条件
-
对不起,我更正了我期望的答案。请检查我编辑的问题。
-
您的预期结果与问题描述完全不符。比如
10不在-0:0的范围内 -
我犯了一个错误。不应该将其称为范围。请重新检查我的代码!如果特定的 no 大于 no range1 或小于 range1,那么我将其强制为 10(特定值)。