相关文章推荐
坏坏的西装  ·  Vue npm run build 错误 ...·  3 月前    · 
千杯不醉的松鼠  ·  sql server ...·  1 年前    · 
高大的包子  ·  /std (Specify ...·  1 年前    · 

我在Matlab中有一个三维数组.第一个维度是时间,第二个维度是湿度,第三个维度是温度.如果温度值<1. 0,我希望每个后续温度值都变为NaN. 例如,如果数组是:

>> sampl = randn(4,3,2)

sampl(:,:,1) =

0.79487 0.71017 -0.39167

0.51754 -1.3068 0.84166

0.49461 0.74159 0.082784

0.66393 1.4677 0.31467

sampl(:,:,2) =

0.78981 1.3096 1.0434

-0.80122 0.16037 -1.0682

-0.32565 -2.1182 -0.31723

0.28468 0.70708 1.4797

将此转化为最有效的方法是什么:

sampl(:,:,1) =

0.79487 0.71017 NaN

0.51754 NaN NaN

0.49461 NaN NaN

0.66393 NaN NaN

sampl(:,:,2) =

0.78981 1.3096 1.0434

NaN 0.16037 NaN

NaN NaN NaN

NaN NaN NaN

具体来说,对于特定切片,我们希望沿每列处理,并且一旦我们在一列中遇到负数,我们希望该位置为NaN以及该NaN值之后的同一列的所有行位置也是NaN.

我在Matlab中有一个三维数组.第一个维度是时间,第二个维度是湿度,第三个维度是温度.如果温度值&lt;1. 0,我希望每个后续温度值都变为NaN. 例如,如果数组是:&gt;&gt; sampl = randn(4,3,2)sampl(:,:,1) =0.79487 0.71017 -0.391670.51754 -1.3068 0.841660.49461 ... 找出 nan 的位置 ind_ nan = find(is nan (a)); % 输出 nan 的线性索引 sub_ nan = zeros(length(ind_ nan ), 2); % 行列式 矩阵 位置索引 for n=1:length(ind_ nan ) [sub_ nan (n,1),...
Matlab ,可以使用以下程序来实现这个需求: vec = [1, 2, 3, 4, 5]; % 代表的是需要检查的列向量 threshold = 3; % 代表的是阈值 flag = NaN ; % 初始化 flag 为 NaN if all(vec <= threshold) flag = NaN ; % 如果所有 元素 都小于等于...