2010-10-20 122 views
2

我正在使用MATLAB,並有格式化矩陣輸出的一些問題。目前,該矩陣的樣子:MATLAB格式化矩陣

Columns 1 through 7 

    4  6  5  1  0  0  0 
    7  8  4  0  1  0  0 
    6  5  9  0  0  1  0 
    1  0  0  0  0  0 -1 
    0  1  0  0  0  0  0 
    0  0  1  0  0  0  0 

    Columns 8 through 9 

    0  0 
    0  0 
    0  0 
    0  0 
    -1  0 
    0 -1 

有沒有辦法讓整個矩陣展現出來「更接近」在一起,這樣的事情:

1  0  0  0  0  0 
0  1  0  0  0  0 
0  0  1  0  0  0 
0  0  0 -1  0  0 
0  0  0  0 -1  0 
0  0  0  0  0 -1 

回答

3

自定義輸出,你可以嘗試是這樣的:

x = randi(100, [6,9]); 

for i=1:size(x,1) 
    fprintf('%d\t',x(i,:)); 
    fprintf('\n'); 
end 

23 44 26 23 9 49 53 37 10 
18 19 41 12 27 58 24 99 27 
23 91 60 30 81 24 49 4 34 
44 98 27 32 3 46 63 89 68 
32 44 61 43 93 97 68 92 14 
93 12 72 51 74 55 40 80 73 

或者更容易,你可以使用NUM2STR功能:

x = randi([-10 10], [6 9]); 
num2str(x) 

ans = 
2 1 7 8 9 -1 -1 9 5 
6 8 -3 9 -4 3 8 4 8 
-2 -9 -7 4 -9 -7 -8 -6 7 
1 6 -10 9 6 1 -1 1 -8 
9 -3 10 -5 -9 3 3 8 -7 
8 -6 4 8 5 -10 -4 1 -7 
+0

嗨,感謝您的迴應。然而,在使用fprintf路由時,有沒有辦法保持格式'short'? – ajj 2010-11-02 15:57:58

+0

我不確定你的意思? – Amro 2010-11-02 18:48:43