![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/179603/image.jpeg)
why is my error plot not showing?
조회 수: 1 (최근 30일)
이전 댓글 표시
x = linspace(-10,10,100);
h = logspace(-1,-16,100);
error = (300);
figure(1);
hold on;
for i = 1:100
error(i) = abs(1-(exp(h(i)-exp(h(i))))/(h(i)));
plot(x,error(i));
end
disp([error']);
댓글 수: 0
답변 (3개)
John BG
2018년 3월 2일
편집: John BG
2018년 3월 2일
Hi Luis Garcia
there's no need for a for loop
x = linspace(-10,10,100);
h = logspace(-1,-16,100);
err=abs(ones(1,numel(h))-(exp(h-exp(h)))./h)
plot(x,err);grid on
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/179603/image.jpeg)
.
and since you wish a display of the error, perhaps you would like to consider a table:
.
T1=table(x',err')
T1 =
100×2 table
Var1 Var2
__________________ ____________________
-10 2.65982076505758
-9.7979797979798 4.20132574336608
-9.5959595959596 6.38225249098713
-9.39393939393939 9.47080574029657
..
7.57575757575757 55914403982699.7
7.77777777777778 79257222980929
7.97979797979798 112345065800796
8.18181818181818 159246228104940
8.38383838383838 225727413882301
8.58585858585858 319962777042449
8.78787878787879 453538969555982
8.98989898989899 642879771226050
9.19191919191919 911265465581224
9.39393939393939 1.29169525302885e+15
9.5959595959596 1.8309446475436e+15
9.7979797979798 2.59531673164217e+15
10 3.67879441171442e+15
.
Luis
If you find this answer useful would you please be so kind to consider marking my answer as Accepted Answer?
To any other reader, if you find this answer useful please consider clicking on the thumbs-up vote link
thanks in advance
John BG
Modified Answer: Applied Jan Simon's advice not to use any variable named 'error', thanks
댓글 수: 0
Jan
2018년 3월 2일
편집: Jan
2018년 3월 2일
Do not use "error" as a name of a variable, because this shadows an important built-in function with the same name. Afterwards trying to call error() can have unexpected results.
What is the purpose of
error = (300);
? Do you mean:
error = zeros(1, 100);
as a pre-allocation?
x = linspace(-10, 10, 100);
h = logspace(-1, -16, 100);
err = zeros(1, 100);
figure(1);
hold on;
for i = 1:100
err(i) = abs(1 - (exp(h(i) - exp(h(i)))) / (h(i)));
plot(x(i), err(i), 'o');
% ^^^ ^^^ modified
end
If you plot only single points, they are not visible. Use a marker like the 'o' to make them visible.
The other answers explained how to plot outside the loop. I wanted to add an explanation of why you do not see the plot with your method.
댓글 수: 0
Star Strider
2018년 2월 21일
The plot call needs to go after the loop:
figure(1);
hold on;
for i = 1:100
error(i) = abs(1-(exp(h(i)-exp(h(i))))/(h(i)));
end
plot(x,error)
hold off
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!