在for循环中使用fprintf提供了错误的值

时间:2018-03-31 12:37:18

标签: matlab

我有一个MATLAB函数文件,用于计算给定函数的错误值。我目前正在通过

单独进行3次迭代
k=[5,10,15];

% Iteration 1
error1= (vel(5,t1,t2,func)-exact)*100/exact;

% iteration_2
error2 = (vel(10,t1,t2,func)-exact)*100/exact;

% iteration_3
error3 = (vel(15,t1,t2,func)-exact)*100/exact;

fprintf("Error for k = 5, error1 = %0.4f \nError for k = 10, error2= %.4f \nError for k = 15, error = %.4f\n ",error1,error2,error3)

我尝试使用此

将其转换为for循环
for i = 1:length(k);
K = k(i);
error = vel(k,t1,t2,func);
error(i) = error;
error = abs((error-exact)/exact);
fprintf('Error for %d is %0.4d\n',K,error)
end

然而,当我尝试运行此for循环时,我的fprintf完全错误。我一直试图让它工作一段时间,但它仍然给我错误的答案。

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

k=[5,10,15];
for i=k
    error=abs(vel(i,t1,t2,func)-exact)/exact*100;
    fprintf('Error for %d is %.4f\n',i,error);
end

干杯。