2015-01-16 9 views

回答

1

clear命令用於刪除整個變量,看documentation。如果你能clear 3,3場,將導致畸形的矩陣:

1.  4.  5. 
9.  13. 11. 
46. 29.  

我不知道的一種方式,這是可能的。

你想要什麼?你想設置某些字段被忽略。你可以只將其設置爲NaN(非數字),並檢查它是否楠後面的代碼與isnan

A = rand(3,3) 

A(3,3)= %nan 

disp(A) 
non_nans_indices = find(~isnan(A)) 

disp(A(non_nans_indices)) 
0

在常規的矩陣,你不能刪除一個元素,如在上面的回答說:您必須刪除整行或整列。然而,在一個稀疏的矩陣中,你可以。稀疏矩陣只存儲矩陣的非零元素。

A=rand(3,3); 
disp(A,"original matrix:"); 
A(3,3)=0; 
disp(A,"element is nulled out:"); 
A=sparse(A); 
disp(A,"sparse matrix:"); 

這樣,你沒有按:所以,如果你的數據不包含有效元素與0值,你可以將其設置爲0,則矩陣轉換成稀疏形式與sparse命令「刪除」的任何元素不存儲可以節省內存或存儲空間的tha矩陣的0值。如果你想轉換回,你可以使用full命令:「丟失」的元素再次與零representeted:

B=full(A); 
disp(B,"full form:"); 

但我認爲,對於缺失或無效值,最好使用%nan如上建議太:處理更容易,更一致,並且可以將矩陣中的零作爲有效數據。

相關問題