【发布时间】:2014-01-21 22:10:10
【问题描述】:
我正在尝试做一个非线性拟合的 for 循环,其中一个系数会随着每次迭代而改变值。这些值位于一个名为 YoungMod 的数组中。我有:
for k=1:size(DataAll,3)
ft = fittype('E1*(YoungMod(k))-b*t','coefficients',{'E1','b'},'independent', 't','dependent','depth','options',fo);
[FittedData{k},gof{k}] = fit(DataAll(:,3,k),DataAll(:,1,k),ft1); %{k});
coeffs{k}=coeffvalues(FittedData{k});
end
我收到的错误信息是:
Error using fittype>iTestCustomModelEvaluation (line 726)
Expression
E1*(YoungMod(k))-b*t
is not a valid MATLAB expression, has non-scalar coefficients, or cannot be evaluated:
Error in fittype expression ==>
(E1*YoungMod(k))-b*t
??? Undefined function 'YoungMod' for input arguments of type 'double'.
对我来说,问题似乎在于字符串正在读取 YoungMod*(k) 而不是获取 YoungMod 数组的 k 值。非常感谢您的帮助!
【问题讨论】: