Concatenate arrays in MATLAB and Change Column name of Table

9 ビュー (過去 30 日間)
Furqan Hashim
Furqan Hashim 2021 年 1 月 15 日
コメント済み: Steven Lord 2021 年 1 月 15 日
I am trying to concatenate a cell array and a double but can't achieve that. Cell array can be generated using below code.
test = {'A.X' 'B.Y' 'C.Z'} ;
Double array can be generated using below code.
test_double = [10 20 30; 40 50 60];
I tried concatenating them using following code
cat(1, test, test_double)
But I get dimension error as follows
Dimensions of matrices being concatenated are not consistent.
Also if I convert the double array to table and rename the columns using input form cell array it gives me an error
'A.X' is not a valid variable name.
Above error can be replicated using following code
test_table = table(test_double);
test_table.Properties.VariableNames = test;
How can I concat the arrays?
How can I convert double array to table and rename columns using cell array?

回答 (1 件)

KSSV
KSSV 2021 年 1 月 15 日
t = [10 20 30; 40 50 60];
A = t(:,1) ; B = t(:,2) ; C = t(:,3) ;
T = table(A,B,C)
  4 件のコメント
Furqan Hashim
Furqan Hashim 2021 年 1 月 15 日
If variables can't be named as suggested can below 2 arrays be concatenated?
test = {'A.X' 'B.Y' 'C.Z'} ;
test_double = [10 20 30; 40 50 60];
Steven Lord
Steven Lord 2021 年 1 月 15 日
test = {'A.X' 'B.Y' 'C.Z'} ;
test_double = [10 20 30; 40 50 60];
T = array2table(test_double, 'VariableNames', test)
T = 2x3 table
A.X B.Y C.Z ___ ___ ___ 10 20 30 40 50 60
It does require slightly different syntax to access the variables by name using dot notation if the names aren't MATLAB identifiers.
% T.A.X would not work
x = T.('A.X')
x = 2×1
10 40
Indexing using parentheses or curly braces works, though.
z2 = T{2, 'C.Z'}
z2 = 60

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by