2017-05-03 89 views
0

對於Matlab中的矩陣,是否可以爲每列添加一行?爲矩陣列標題添加一個字符串行

例如,我有這個矩陣

I = 

203 397 313 420 
269 638 338 642  
270 316 526 336 
291 553 372 550  
296 797 579 774 

我想有

I = 

X  Y  Z weight 
203 397 313 420 
269 638 338 642  
270 316 526 336 
291 553 372 550  
296 797 579 774 
+1

考慮看看到文檔,特別是[Cell Arrays](https://mathworks.com/help/matlab/cell-arrays.html)和/或[Tables](https://mathworks.com/help/matlab/tables.html) – serial

回答

6

對於矩陣:沒有。所有矩陣元素必須是數字。

Tables是你能夠保持數字格式的數據的最佳選擇(如你會爲一個矩陣互動),但有標題...

% Set up matrix 
I = [203 397 313 420 
    269 638 338 642  
    270 316 526 336 
    291 553 372 550  
    296 797 579 774]; 
% Convert to table 
array2table(I, 'VariableNames', {'X', 'Y', 'Z', 'weight'}) 

table

當使用表,你可以通過他們的變量名訪問列像這樣:

disp(I.X) % Prints out the array in the first column 
disp(I(:,1)) % Exactly the same result, but includes the column heading 

% For operations, reference the variables by name 
s = I(:,1) + I(:,2); % Gives error 
s = I.X + I.Y;  % Gives expected result 

注:根據文檔,表格是在R2013b介紹,如果您有Matlab的一箇舊版本,你將不得不使用電池陣列...

% Set up matrix as before 
I = [203 397 313 420 
    ... ... ... ...]; 
% Convert to cell and add header row 
I = [{'X', 'Y', 'Z', 'weight'}; num2cell(I)]; 

cell array

+0

謝謝,我申請你的第一個想法:-) –

1

使用table

X = [203, 269, 270, 291, 296]; 
Y = [397, 638, 316, 553, 797]; 
Z = [313, 338, 526, 372, 579]; 
weight = [420, 642, 336, 550, 774]; 

T = table(X, Y, Z, weight); 

這是結果:

>> T 

T = 

     X    Y    Z    weight 
    ____________ ____________ ____________ ____________ 

    [1x5 double] [1x5 double] [1x5 double] [1x5 double]