【问题标题】:One number array, one logic array. If logic == 1 then use number value, if logic ==0 then return no value一个数字数组,一个逻辑数组。如果逻辑 == 1 则使用数值,如果逻辑 ==0 则不返回任何值
【发布时间】:2014-09-09 13:13:59
【问题描述】:

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

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

使用类似的东西:

output= number(array)

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

【问题讨论】:

    标签: arrays matlab


    【解决方案1】:

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

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

    然后你可以将掩码应用到原始矩阵

    A(not(M)) = nan;
    

    【讨论】:

    【解决方案2】:

    NaNs预分配output

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

    【讨论】:

    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2023-03-25
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多