【发布时间】:2015-12-03 15:26:25
【问题描述】:
我在 MATLAB 中有一个零一矩阵,如下所示:
[0 0 0 1 1 1
0 1 1 0 0 0
1 0 0 0 0 1
1 1 1 0 0 0
0 0 0 1 0 1]
我想通过1 定义另一个包含 rand 值的矩阵,而不是上述矩阵的索引。例如,所需的新 rand 矩阵应该是:
[0 0 0 0.2 0.2 0.1
0 0.6 0.7 0 0 0
0.4 0 0 0 0 0.6
0.7 0.8 0.5 0 0 0
0 0 0 0.3 0 0.4]
我使用two nested loop for 从第一个矩阵中查找非零值,并将 rand 值替换为新矩阵中的值。
matlab有什么功能可以自动做,不用two nested loop for?
【问题讨论】:
-
你可以只乘矩阵,没有任何循环。
-
@Adiel - 实际上是正确的。但它需要一个零一矩阵,如问题中所述。问题标题表示非零值,这需要先转换为逻辑值。这并不完全清楚。但是对于第一种情况,您的方法要快一些。
-
其实你是对的,但我只拿了问题中的案例,没有注意到标题的差异。但是,他说那是他拥有的矩阵...... :)