我使用xlsread
來讀取xlsx文件。我期望rawdata
將返回一個34x3單元陣列。xlsread在Matlab中即使Excel中沒有數據也會返回NaN
[raw_num raw_txt rawdata]=xlsread('file.xlsx');
的raw_num
和raw_txt
返回正確的值,34x1單元陣列和34x2單元陣列。
但是,當我檢查rawdata
時,它返回139x6單元陣列。它不僅包含Excel文件中的數據,還包含NaN
元素。對於NaN
元素,excel文件中沒有數據。我只能假設我可能會輸入一些內容,然後刪除它。但爲什麼matlab讀取它?
的RAWDATA看起來是這樣的:
'a' 'b' 'c' NaN NaN
'd' 'e' 'f' NaN NaN
NaN NaN NaN NaN NaN
我怎樣才能避免這種情況,當我使用xlsread?
或者我得到這個矩陣後如何去除NaN?
感謝您的幫助
all(cellfun(fh,A))只在第一行返回NaN的邏輯。因此,當矩陣A中的NaN在行和列中不相同時,此代碼無法正確執行。例如,我將A更改爲3x4單元格:A = {NaN,NaN,NaN,NaN; NaN,NaN,NaN,NaN; NaN,NaN,NaN,NaN}; A {1,1} ='a'; A {1,2} ='b'; A {2,1} ='c'; A {2,2} ='d';那麼A(所有(cellfun(fh,A)),:) = []將顯示錯誤 – chshiu
我認爲它應該是:fh = @(x)all(isnan(x)); a1 = cellfun(fh,A); A(a1(:,1),:)= []; A(:,a1(1,:))= []; – chshiu
查看編輯後的代碼 –