Unrecognized function or variable 'del'.

1 vue (au cours des 30 derniers jours)
Kaustubh Joshi
Kaustubh Joshi le 10 Juin 2024
Modifié(e) : Aquatris le 10 Juin 2024
n=0;
>> for del=0.0:0.4:pi
n=n+1;
pe(n)=1.2*sin(del);

Réponses (3)

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

Aquatris
Aquatris le 10 Juin 2024
Modifié(e) : Aquatris le 10 Juin 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 le 10 Juin 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.
.

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Tags

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by