【发布时间】:2015-12-26 01:52:46
【问题描述】:
在 MATLAB 中,我有一个 5 x5 矩阵,如下所示:
>> a = rand(5)
a =
0.9356 0.9534 0.0282 0.4752 0.7735
0.2701 0.4514 0.9733 0.8899 0.5671
0.7472 0.7413 0.1240 0.9107 0.8378
0.1031 0.6197 0.5289 0.0056 0.3798
0.0409 0.6538 0.7813 0.4902 0.2815
我想保留那些超过阈值的值并将它们复制到一个新矩阵中,同时将其他值设置为 0。
这是我尝试过的。我尝试生成一个logical 矩阵,然后索引到矩阵中以选择我想要的值:
>> b=a>=0.30550
ans =
1 1 0 1 1
0 1 1 1 1
1 1 0 1 1
0 1 1 0 1
0 1 1 1 0
>> a(b)
ans =
0.9356
0.7472
0.9534
0.4514
0.7413
0.6197
0.6538
0.9733
0.5289
0.7813
0.4752
0.8899
0.9107
0.4902
0.7735
0.5671
0.8378
0.3798
但是,这会产生一维向量。我怎样才能实现我想要的,使输出看起来像这样?
0.9356 0.9534 0 0.4752 0.7735
0 0.4514 0.9733 0.8899 0.5671
0.7472 0.7413 0 0.9107 0.8378
0 0.6197 0.5289 0 0.3798
0 0.6538 0.7813 0.4902 0
【问题讨论】:
-
请在标签中提及并指定您使用的语言/框架。可以帮助的人更容易注意到您的问题
-
对不起,先生,我正在使用 matlab 的目的
标签: arrays matlab matrix indexing