2015-12-10 16 views
-1

考慮MATLAB數組:如何修復和刪除零之間的數量來平衡數字陣列中的

a = [102 20 1 30 8 255];

在這陣,我需要添加前綴以使所有的數字三位數零到所有的數值是這樣的:

a = 102 020 001 030 008 255 

之後,我需要再次改變它。我怎樣才能做到這一點? 我試圖分開數字,並做到這一點。但它失敗了。

+0

反向意味着數組a的原始值必須通過去除零 –

+0

_make被回收的所有通過在零之前加數字來表示三個數字是沒有意義的。 '20'和'020'是相同的數字。這只是一個展示內容。要生成帶有前導零的_strings_,請嘗試類似'a = [102 20 1 30 8 255]; sprintf('%03i \ n',a)' –

回答

2

你想用的fprintfnotation,其可與sprintf被保存爲一個字符串:

>> a = [102 20 1 30 8 255] 

a = 

    102 20  1 30  8 255 

>> b = sprintf('%.3d ',a) % b is a single string 

b = 

102 020 001 030 008 255 

>> a = str2num(b) 

a = 

    102 20  1 30  8 255 
+0

@ luis-mendo說什麼 – Steve

0

您可能需要轉換爲字符串。例如,看看int2strnum2str函數。然後,您可以在開始時輕鬆連接零。例如:

s = int2str(10); 
['0' s] 

這給你010作爲輸出。 然後您可以使用str2num函數進行恢復。