Re: [問題] 矩陣內資料NaN 取代 計算平均與標準差已回收
\※ 引述《susuyumi (鈴弓)》之銘言:
: 不好意思,我透過標題把問題都寫在上面了....
: 問題:
: 今有一個矩陣A <4x4x3 double>,內部資料有NaN,我想要分析計算其平均與標準差,
: ,最後可得到資料B <1x4x3 double>,該怎麼作呢?
: 資料:
: A(:,:,1) = [1 6 7 5
: NaN NaN NaN NaN
: 2 3 2 2
: 3 3 3 1 ]
: A(:,:,2) = [4 2 1 0
: NaN NaN NaN NaN
: NaN NaN NaN NaN
: 2 0 1 4 ]
: A(:,:,3) = [2 1 2 1
: 3 2 8 6
: 2 1 4 4
: 5 8 10 9 ]
: 恕刪...
: B(:,:,1) = [2 4 4 3];
: B(:,:,2) = [2 1 1 2];
: B(:,:,3) = [3 3 6 5];
我把你可能需要答案換成D 不過和你給的範本答案相異
,請確認敘述是否詳細與正確。
恕刪...用你嘗試方法的指令正確組合是...
clear
A(:,:,1) = [1 6 7 5
NaN NaN NaN NaN
2 3 2 2
3 3 3 1 ];
A(:,:,2) = [4 2 1 0
NaN NaN NaN NaN
NaN NaN NaN NaN
2 0 1 4 ];
A(:,:,3) = [2 1 2 1
3 2 8 6
2 1 4 4
5 8 10 9 ];
% isnan指令用來判斷元素是否為nan
% 1代表是(真) 0代表否(假)
% 例如isnan(A(:,:,1))
% =[0 0 0 0
% 1 1 1 1
% 0 0 0 0
% 0 0 0 0 ]
B=double(isnan(A));
% 用法 histc(要計算的矩陣,輸入要找尋的數值)
% 例如:histc(B,0)
% histc 矩陣用來統計0共有多少個
% 在這範例 用於找尋不是為nan的元素有多少個。
% histc(B(:,:,1),0)
% =[3 3 3 3]
C=histc(B,0);
% 接下來把原本nan 變成0
A(isnan(A))=0;
%總和A,除以C
D=sum(A)./C;
%結束
D(:,:,1) =
2.0000 4.0000 4.0000 2.6667
D(:,:,2) =
3 1 1 2
D(:,:,3) =
3 3 6 5
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.127.6.148
※ 編輯: s123123sam 來自: 140.127.6.148 (07/20 16:43)
※ 編輯: s123123sam 來自: 140.127.6.148 (07/20 16:45)
※ 編輯: s123123sam 來自: 140.127.6.148 (07/20 16:48)
※ 編輯: s123123sam 來自: 140.127.6.148 (07/20 16:52)
※ 編輯: s123123sam 來自: 140.127.6.148 (07/20 20:18)
推
07/22 00:40, , 1F
07/22 00:40, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):