一个数字数组,一个逻辑数组。如果逻辑== 1则使用数字值,如果逻辑== 0则不返回任何值

时间:2014-09-09 13:13:59

标签: arrays matlab

我有两个matlab数组,非常大,超过41k行,每行有10列。

我还有一个完全相同的数组,填充了1和0。我需要将此逻辑数组应用于第一个数组,如果值为逻辑真,则传递数字,否则如果为false则必须返回NaN。

使用类似的东西:

output= number(array)

仅提供正逻辑数组值的输出,但我需要保持数组的大小/结构相同,我该怎么做?

2 个答案:

答案 0 :(得分:2)

首先让我们生成一个虚拟矩阵和一个虚拟掩码

A = rand(5,3);
M = randi([0 1], 5, 3);

然后您可以将蒙版应用于原始矩阵

A(not(M)) = nan;

答案 1 :(得分:1)

使用output s预先分配NaN

output = NaN(size(number))
output(array) = number(array)