Unrecognized function or variable 'del'.

1 view (last 30 days)
Kaustubh Joshi
Kaustubh Joshi on 10 Jun 2024
Edited: Aquatris on 10 Jun 2024
n=0;
>> for del=0.0:0.4:pi
n=n+1;
pe(n)=1.2*sin(del);

Answers (3)

ScottB
ScottB on 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 on 10 Jun 2024
Edited: Aquatris on 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 on 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.
.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Tags

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!