【发布时间】:2022-10-14 03:09:43
【问题描述】:
在 Matlab (R2021b) 中,我使用了一些给定的函数,它读取几个变量的时间相关值并将它们与时间向量一起返回到组合矩阵中。在数据矩阵中,每一列代表一个变量的时间相关值的一个向量。
[data,time] = function_reading_data_of_several_values('filename');
为了进一步处理变量的以下代码的可读性,我想将这些列存储在单独的向量变量中。我正在这样做:
MomentX = data(1,:);
MomentY = data(2,:);
MomentZ = data(3,:);
ForceX = data(4,:);
ForceY = data(5,:);
ForceZ = data(6,:);
那是有效的。但是是否有一些更简单(或更短)的方法可以将矩阵的列分配给各个向量?我问是因为在实际程序中我有超过示例中的 6 列。代码变得很长。我在想类似于下面一行的东西,但这不起作用:
[MomentX,MomentY,MomentZ,ForceX,ForceY,ForceZ] = data; %does not work
你有什么主意吗?感谢帮助!
更新:
感谢小组中使用表格的提示,解决方案可能是这样的:
...
[data,time] = function_reading_data_of_several_values('filename');
% data in matrix. Each column representing a stime dependent variable
varNames = {'MomentX', 'MomentX',...}; % Names of columns
T=array2table(data','VariableNames',varNames); % Transform to Table
Stress = T.MomentX/W + T.ForceY/A %accesing table columns
...
这对我来说似乎工作正常且可读。
【问题讨论】:
标签: matlab