Renaming headers in Table

50 ビュー (過去 30 日間)
Jake Bowd
Jake Bowd 2020 年 7 月 16 日
コメント済み: Fangjun Jiang 2020 年 7 月 16 日
Hi,
I want to make a table from an array by using the array2table function. This works perfectly fine for my datasets whereby table headers do not match. But on occassion I have it whereby the data will have headers that are the same. I.e.
'ground_force_px' 'ground_force_py' 'ground_force_pz' 'ground_force_vx' 'ground_force_vy' 'ground_force_vz'
'ground_force_px' 'ground_force_py' 'ground_force_pz' 'ground_force_vx' 'ground_force_vy' 'ground_force_vz'
Is there a way whereby I can to convert from array2table whilst keeping these header names the same ?
Many thanks,
  5 件のコメント
Jake Bowd
Jake Bowd 2020 年 7 月 16 日
My structure looks like:
data textdata colheaders
1x290 cell 13x290 cell 295x290 double
I wish to make a table using 'data' for the data and 'colheaders' for the table headers.
I have a problem. There are repetitions in 'colheaders', which are:
'ground_force_px' 'ground_force_py' 'ground_force_pz' 'ground_force_vx' 'ground_force_vy' 'ground_force_vz'
'ground_force_px' 'ground_force_py' 'ground_force_pz' 'ground_force_vx' 'ground_force_vy' 'ground_force_vz'
and I receive the following error message:
Duplicate table variable name: 'ground_force_px'.
Question: Can I either delete the colheaders that repeat themselves along with the corresponding data, or can I rename the any colheaders that repeat?
The reason why most work is that there are no repeats of 'colheaders'. However for this particular visit, there are repeats. As such preventing from creating a table.
Fangjun Jiang
Fangjun Jiang 2020 年 7 月 16 日
See note under Steven's answer. "duplicated headers" is the keyword here. Look back your question, you will see why three MVPs couldn't guess it right.

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

採用された回答

Steven Lord
Steven Lord 2020 年 7 月 16 日
I'm not sure I see the problem.
A = magic(6)
V = ["ground_force_px", "ground_force_py", "ground_force_pz", ...
"ground_force_vx", "ground_force_vy", "ground_force_vz"];
T = array2table(A, 'VariableNames', V)
If you mean you want to have a table where two of the variable names are the same, that's not allowed.
V2 = V;
V2(6) = V2(2);
T2 = array2table(A, 'VariableNames', V2) % Will error
  7 件のコメント
Steven Lord
Steven Lord 2020 年 7 月 16 日
As of release R2019b table variable names don't have to be valid MATLAB identifiers. This means table arrays created with variable names that have gone through genvarname are not necessarily the same as one whose names have gone through matlab.lang.makeUniqueStrings.
A = magic(3);
V = {'hocus pocus', 'abracadabra', 'hocus pocus'};
G = genvarname(V);
T1 = array2table(A, 'VariableNames', G)
U = matlab.lang.makeUniqueStrings(V);
T2 = array2table(A, 'VariableNames', U)
Fangjun Jiang
Fangjun Jiang 2020 年 7 月 16 日
good point! I see the difference.

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

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by