我有一个关于matlab代码的问题。我有一个特定的一个变量函数,我想在这个函数中将一个向量或数组赋值为一个x值。但我没有达到成功。 我的代码的一部分是在低于:在matlab中使用函数的矢量
a=-5; b=10; n=20; %[a,b] interval range and n is number of interval
sz = (b-a)/n; %interval size
t=1; %iteration number
for i=1:n
I(i,:,t) = [a+(i-1)*sz a+i*sz]; %interval
x(i,:,t) = a+(i-0.5)*sz; %midpoint of interval
end
f= x.^2-3.*x+5; %my sample function
for i=1:n
if i==1
j=i+1;
neigbor(i,:,t) = I(j,:,t); %neigbor of interval I1's
h_f(i,:,t) =abs(f(x(i,:,t))-f(x(j,:,t))); %heuristic value
prob(i,:,t)=(ph(j,:,t).*h_f(i,:,t))./(ph(j,:,t).*h_f(i,:,t)); %probability
...
其他如果条件跟随此代码,但我检查这在下面样品部分i和j值,它给出错误是这样的:“下标索引必须是真正的正整数或逻辑“。
h_f(i,:,t) =abs(f(x(i,:,t))-f(x(j,:,t)));
我不知道什么?我的错误是什么?你能提出什么建议吗?如果你需要完整的代码,我可以发布。
编辑:其实这个函数f通过使用自己返回值。但它在注释h_f(i,:,t)= abs((f(x(i,:,t)-x(j,:,t))中不返回值
解决方案编辑:单独的函数m文件,并调用主函数。不需要在f中写入x数组。
更改您的变量名称,使其更易于阅读。 – LearningProcess