Arrays MATLAB字符串到数字错误
我有几十个具有不同数组名称的数组,我想逐数组进行循环数组的数学计算。我成功地将这些数组调用到for循环中。有人能帮我解决这个问题吗?text1数组包含数组名。我的“s”结构的所有这些数组的名称都与text1数组的内容相同Arrays MATLAB字符串到数字错误,arrays,matlab,Arrays,Matlab,我有几十个具有不同数组名称的数组,我想逐数组进行循环数组的数学计算。我成功地将这些数组调用到for循环中。有人能帮我解决这个问题吗?text1数组包含数组名。我的“s”结构的所有这些数组的名称都与text1数组的内容相同 text1=['s.CustomerArray.DistanceDriven','s.CustomerArray.TimeDriven']; for i=1:3 parameter=str2num(text1(i)); k=size(parameter,2);
text1=['s.CustomerArray.DistanceDriven','s.CustomerArray.TimeDriven'];
for i=1:3
parameter=str2num(text1(i));
k=size(parameter,2);
a=100;
y=zeros(a,k);
end
在本部分之后,我的一些其他计算应开始使用“参数”
问候,
我认为你做错了几件事,这里有一些建议 <>而不是手动列出它们,考虑在<代码>字段名称< /代码>上进行循环,可以自动获得。 如果要在字符串上循环,请确保使用
单元格数组
,而不是矩阵
如果您有一个常量,请在循环外部而不是在循环内部声明它。这不会破坏代码,只会导致过时的计算
如果要存储在循环中获得的结果,请确保向循环的变量添加索引
也就是说,这里有一个关于你想做什么的猜测:
f = fieldnames(s.CustomerArray);
y = cell(numel(f),1);
parameter = NaN(numel(f),1);
for t = 1:numel(f)
parameter(t) = s.CustomerArray.(f{t});
y{t} = zeros(100,numel(f{t}));
end
您希望
参数中包含什么内容??而且text1(1)
会给你's'
,text1(2)
会给你。
等等。。。我肯定这根本不是你想要的。我想也许你应该扩展你的解释,包括一个例子那么问题是什么?您是否收到错误消息?如果是,是哪一个?'s.CustomerArray.DistanceDriven'和's.CustomerArray.TimeDriven'将作为带有xlsread函数的文本出现。在我的工作区中,这些数组有一个数字,我想稍后使用。我的目的是将这些字符串数组转换为数字数组。str2num在我的情况下不起作用。谢谢你的建议。我在字符串上循环,但我的重点是在工作区内到达该字符串名称数组的数值。@user3145941假设存在具有该名称的数组,这应该是您现在在参数中得到的。尝试a.b=1;s='b';a、 (s)
了解如何访问命名结构的值。