Matlab for loop with string letters

11 次查看(过去 30 天)
Hi everyone,
I have a table (T) that contains data and have extracted column data from it as follows:
data_1_forward = T.foward_wheels + 435;
data_1_backwards = T.backwards_wheels + 435;
data_1_left = T.left_wheels + 435;
I want to put this in a loop since it is repeated code but unsure on how to do this with strings in the index. I also want the loop to output data_1_foward, data_1_backwards... as separate arrays or vectors.
Many thanks

采纳的回答

Walter Roberson
Walter Roberson 2023-3-28
numvars = width(T);
data_1 = cell(numvars,1);
for K = 1 : numvars
data_1{K} = T{:,K};
end
Now, data_1 is a cell array with one entry for each variable.
I also want the loop to output data_1_foward, data_1_backwards... as separate arrays or vectors.
You might want to consider
numvars = width(T);
vars = T.Properties.VariableNames;
data_1 = struct();
for K = 1 : numvars
thisvar = vars{K};
data_1.(thisvar) = T.(thisvar);
end
This would create a struct named data_1 that has one field for each variable in the table.
See also table2struct

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by