2017-07-21 70 views
0

matlab num2str(A,格式)函數組件式?

a=[0.221354766 315.806415]; 

我希望某事像(相同fieldwidth)

0.2214  315.8064 

我試圖

b=num2str(a) 
    % b = 
    % 0.2213548  315.8064 
    c=num2str(a,'%8.4f') 
    % c = 
    % 0.2214315.8064 
    d=num2str(a,'%8.7g') 
    %d = 
    %0.2213548 315.8064 

什麼建議嗎? Tks

+0

你說你要同場的寬度,但隨後表明要相同數量的小數地方,這不是一回事,你能指定嗎?你也想要輸出作爲字符串或數字? – Wolfie

+0

'num2str'似乎吃掉了領先的空白。用['sprintf'](https://www.mathworks.com/help/matlab/ref/sprintf.html) – Steve

+0

Tks試試你的例子。我嘗試過'sprintf('%8.4g',a)',但它不適用。我想要[__0.2214,315.8064],並且似乎同一個數的小數位和相同的字段寬度(包括空格)不能同時滿足@Steve –

回答

2

如果我正確理解你,你想要相同的小數位數?如果是這樣的話,見好就收掉第一個數字在格式字符串:

num2str([0.221354766 315.806415],'%.4f ') 

ans = 

    '0.2214 315.8064' 
+0

Tks.I想要[__0.2214,315.8064],並且看起來不能同時滿足相同的小數位數和相同的字段寬度(包括空格)。 Your approch在[email protected]之前沒有顯示2個字符空格 –

+0

如果使用'sprintf'代替它,它應該可以工作。如果你使用'sprintf('%8.4f',a)',你會得到'__0.2214315.8064',因爲你的最後一個數字是8個字符長。如果你用'9.4'代替,你可以在它們之間留一個空格,即'___ 0.2214_315.8064'。 – MrAzzaman

0

如果你想通過各種手段使用num2str(a, '%.4f')將這些值存儲爲字符串,然後。這似乎很奇怪採取數字martrix和存儲所有的值作爲字符串雖然,剛輪結果使用round

m = round([0.221354766 315.806415], 4) 

>> m = [0.2214, 315.8064]