How to add variables to a table that are products of other variables

3 ビュー (過去 30 日間)
T4H14
T4H14 2017 年 10 月 10 日
コメント済み: Walter Roberson 2017 年 10 月 11 日
If I have a table of 46 variables and I want to add on new variables to this table which are the squares and cubes of some of these variables (columns 10 and 12-18) how can I accomplish this? I would be adding on 16 new variables (columns) in all to the original table.

採用された回答

Walter Roberson
Walter Roberson 2017 年 10 月 10 日
cur_varnames = YourTable.Properties.VariableNames;
for K = [10, 12:18]
thisvarname = cur_varnames{K};
thisval = YourTable.(thisvarname);
sq_varname = [thisvarname '_squared'];
cu_varname = [thisvarname '_cubed'];
YourTable.(sq_varname) = thisval .^ 2;
YourTable.(cu_varname) = thisval .^ 3;
end

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2017 年 10 月 10 日
編集済み: Andrei Bobrov 2017 年 10 月 10 日
Let T - your table.
ts = reshape(T{:,[10,12:18]}.^reshape(2:3,1,1,[]),size(T,1),[]);
newname = cellstr(reshape(string(T(:,[10,12:18]).Properties.VariableNames)'...
+'_'+["squares","cube"],1,[]));
Tout = [T,array2table(ts,'VariableNames',newname)];
  1 件のコメント
Walter Roberson
Walter Roberson 2017 年 10 月 11 日
(Note: the above code requires R2017a or later as it uses some properties of the new string data type)

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by