2013-02-03 52 views
0

我做了一個模擬,每次模擬的結果都是一個矩陣,我從矩陣中選擇一個特定的行,所以如果模擬運行= 500,我將有一個500矩陣,並且,我選擇的行時間將會(在仿真結束時)500行[從第一個矩陣開始的一行...從最後一個矩陣開始的最後一行] ... 問題是某些矩陣的劑量不包含我想要的某一行,答案是例如空矩陣:0-by-6 我想忽略這個答案 注意:我選擇的行不必在所有矩陣中都存在 ,所以如果run = 600,結果爲600矩陣,則排我選擇可能= 400只,其他200將爲零 模擬停止時,結果爲空矩陣:0 - 任何數字 我使用Matlab我該如何處理空矩陣:0由模擬產生的任何數字?

回答

1

可以使用isempty檢測到空的陣列,例如

a=zeros(0,5) 
isempty(a) 
a = 
    Empty matrix: 0-by-5 
ans = 
    1 

因爲當指數超過矩陣尺寸,你可以添加,測試你的矩陣的size,具體的條件,人行如何使用size(m,1)

所以一起,在你的循環中,您可以編寫類似:

for n=1:blah 
    if ~isempty(M)  % continue if matrix is non-empty 
     if size(M,1)<=n % continue if index doesn't exceeds matrix dimensions 
       .... 
       ....