# why is my error plot not showing?

1 Ansicht (letzte 30 Tage)
Luis Garcia am 21 Feb. 2018
Bearbeitet: John BG am 2 Mär. 2018
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 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Antworten (3)

John BG am 2 Mär. 2018
Bearbeitet: John BG am 2 Mär. 2018
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
.
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
John BG
Modified Answer: Applied Jan Simon's advice not to use any variable named 'error', thanks
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Jan am 2 Mär. 2018
Bearbeitet: Jan am 2 Mär. 2018
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 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Star Strider am 21 Feb. 2018
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 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by