2016-01-18 49 views

回答

3

的一種方法是在6個步驟最初創建從0數組216,然後串聯216S的陣列,直到到達200個值。

是這樣的:

out = 0:6:216; 
N = 200; 
out(end+1:end+N-numel(out)) = 216; 

的另一種方法是創建的216 200個值,然後填充替換從1數組的值高達216/6 = 36和因爲我們包括0加1;與期望的陣列填補這個在:

N = 200; stop = (N/6) + 1; 
out = 216*ones(1,N); 
out(1:stop) = 0:6:216; 

最後,另一種方式是創建從0數組高達200,截斷了比36更大的所有值是36,然後乘以6的結果:

N = 200; 
out = 0:N; 
out(out > 36) = 36; 
out = 6*out; 

...並作爲完整,你可以用min 做到這一點:

out = min(0:199,36)*6; 

兩個參數min呼叫輸出最小爲兼容的尺寸的兩個陣列之間的每個元件中的第一和第二輸入的。如果任何輸入都是常量,則將此常量與數組中的所有元素進行比較。此代碼的解釋是,以產生陣列從0到199,然後是小於36我們保留任何值,但任何值時留在36.我們然後乘以6的結果,得到的結果。

1:信用爲這個答案去用戶Stewie Griffin他刪除了他的答案之前。我決定把這個完整。的六分之二百十六

1
arr = min(0:6:(6*199),216); 

應該工作 或:

arr = min((0:199)*6,216); 
相關問題