提问人:Anne 提问时间:11/16/2023 更新时间:11/16/2023 访问量:32
如何在Matlab的for循环中使用部分变量名?
How do I use part of variable name in a for loop in Matlab?
问:
我是 Matlab 的新手,正在努力在循环中使用部分变量名称。
这是我目前的代码
pp = 4;
for p = 1:pp
% find corresponding timestamps
corresponding_sd(p).t = intersect(double(psi_rad_sd(p).time), double(theta_rad_sd(p).time));
corresponding_base(p).t = intersect(double(psi_rad_base(p).time), double(theta_rad_base(p).time));
% only include the data from corresponding timestamps
corresponding_sd(p).psi_rad = psi_rad_sd(p).value(ismember(psi_rad_sd(p).time, corresponding_sd(p).t));
corresponding_base(p).psi_rad = psi_rad_base(p).value(ismember(psi_rad_base(p).time, corresponding_base(p).t));
corresponding_sd(p).theta_rad = theta_rad_sd(p).value(ismember(theta_rad_sd(p).time, corresponding_sd(p).t));
corresponding_base(p).theta_rad = theta_rad_base(p).value(ismember(theta_rad_base(p).time, corresponding_base(p).t));
end
它有效,但有很多类似的代码行。由于我还需要将这种方法用于许多其他变量,因此我想将“_sd”和“_base”部分放在一个额外的 for 循环中。我尝试使用 eval 函数来执行此操作,但我的方法失败了(我还读到不鼓励使用此函数)。 有人能提供解决方案吗?
需要明确的是,因此我希望有两个 1x4 结构(corresponding_sd 和 corresponding_base),每个结构都有 3 个字段(t、psi_rad、theta_rad)。每个参与者(在此示例 4 中)应表示两个输出结构中的一行。
谢谢你的帮助。
答: 暂无答案
评论