0
我有一個稱爲輸出的單元陣列。輸出中的每個單元都包含一個1024 x 1024的矩陣。我想對每個矩陣進行閾值設置,以使給定值以下的元素設置爲NaN。將閾值應用於單元陣列內的矩陣
我試着使用:
output(output < 100000) = NaN;
不過,我覺得這是錯誤的做法。直觀地說,我想使用for循環,但是,我認爲這不是最有效的方法。
想法?建議?
謝謝:)
我有一個稱爲輸出的單元陣列。輸出中的每個單元都包含一個1024 x 1024的矩陣。我想對每個矩陣進行閾值設置,以使給定值以下的元素設置爲NaN。將閾值應用於單元陣列內的矩陣
我試着使用:
output(output < 100000) = NaN;
不過,我覺得這是錯誤的做法。直觀地說,我想使用for循環,但是,我認爲這不是最有效的方法。
想法?建議?
謝謝:)
它可以與cellfun
功能!細胞樂趣做可以實現的每一個細胞的功能(這就像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
所以我下面寫函數用於此目的
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
輸出會像下面
與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
謝謝您的回覆。不過,我在執行代碼時遇到了一些麻煩...... 我的單元陣列的名稱被輸出,輸出中的每個單元都有一個1024 x 1024的矩陣。如果我想讓每一個元素在每個矩陣中低於1e6 = nan,我會怎麼寫? – itend