Unrecognized function or variable 'del'.

1 Ansicht (letzte 30 Tage)
Kaustubh Joshi
Kaustubh Joshi am 10 Jun. 2024
Bearbeitet: Aquatris am 10 Jun. 2024
n=0;
>> for del=0.0:0.4:pi
n=n+1;
pe(n)=1.2*sin(del);

Antworten (3)

ScottB
ScottB am 10 Jun. 2024
del is a native function:
Try renaming your variable. You also need and "end" statement at the end of your loop.

Aquatris
Aquatris am 10 Jun. 2024
Bearbeitet: Aquatris am 10 Jun. 2024
Not recommended but you can generally overwrite native variable/function names. I cannot reproduce your problem
n = 0;
for del=0.0:0.4:pi
n=n+1;
pe(n)=1.2*sin(del);
del % disp
end
del = 0
del = 0.4000
del = 0.8000
del = 1.2000
del = 1.6000
del = 2
del = 2.4000
del = 2.8000

Star Strider
Star Strider am 10 Jun. 2024
That should actually work —
tic
n = 0;
for del=0.0:0.4:pi
n=n+1;
pe(n)=1.2*sin(del);
end
toc
Elapsed time is 0.026322 seconds.
pe
pe = 1x8
0 0.4673 0.8608 1.1184 1.1995 1.0912 0.8106 0.4020
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
A mnore efficient implementation would be —
tic
del=0.0:0.4:pi;
for n = 1:numel(del)
pe(n) = 1.2*sin(del(n));
end
toc
Elapsed time is 0.002461 seconds.
pe
pe = 1x8
0 0.4673 0.8608 1.1184 1.1995 1.0912 0.8106 0.4020
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
However you can take advantage of MATLAB vectorisation capabilities and just use —
tic
del=0.0:0.4:pi;
pe = 1.2*sin(del);
toc
Elapsed time is 0.001995 seconds.
pe
pe = 1x8
0 0.4673 0.8608 1.1184 1.1995 1.0912 0.8106 0.4020
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
The vectorisation approach is morst efficient in this instance (and likely others as well).
See the documentation section on Vectorization for details.
.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by