将阈值应用于单元格数组中的矩阵



我有一个名为output的单元格数组。输出中的每个单元格都包含一个 1024 x 1024 矩阵。我想对每个矩阵进行阈值设置阈值,以便将低于给定值的元素设置为 NaN。

我尝试使用:

output(output < 100000) = NaN; 

但是,我觉得这是错误的做法。直观地说,我想使用 for 循环,但是,我认为这不是最有效的方法。

思潮?建议?

谢谢:)

可以用cellfun函数来完成!cell fun可以在每个单元格上实现一个函数(就像for循环一样) 假设以下示例

首先考虑您有一个名为a的单元格形式的变量。

a{1,1} =
1     2
3     4
a{2,1} =
1     2
5     5
a{1,2} =
4     5
1     2
a{2,2} =
5     5
5     5

在此单元格中,如果条目小于 3,我想用NaN替换条目

所以我为此目的写了下面的函数

function out = main_func()
%% define a
a{1,1}=[1 2;3 4];
a{1,2}=[4 5;1 2];
a{2,1}=[1 2;5 5];
a{2,2}=[5 5;5 5];

out=cellfun(@(T) cell_f(T),a,'uniformOutput',false); % using cell fun function
function x = cell_f(x)
x(x<3)=nan; % if entries lower that 3 then substitute with Nan

输出将如下所示

ans{1,1} =
NaN   NaN
3     4
ans{2,1} =
NaN   NaN
5     5
ans{1,2} =
4     5
NaN   NaN
ans{2,2} =
5     5
5     5 

相关内容

  • 没有找到相关文章

最新更新