error message 'The end operator must be used within an array index expression.'

Hi,
When I try to plot
plot(H20Vs{1:end,1},H20Vs{1:end,2})
hold on
plot(M20Vs{1:end,1},M20Vs{1:end,2})
hold on
plot(N20Vlin{1:end,1},N20Vlin{1:end,2})
% hold on
% plot(P20Vs{1:end,1},P20Vs{1:end,2})
legend('a' ,'b', 'c', 'd', 'e', 'f', 'h', 'l', 'm', 'n')
I recieve this error message 'The end operator must be used within an array index expression.'
Does anyone have any idea why this could be happening? I noticed the last two plot functions don't cause this issue, only the first one.
Cheers

Antworten (1)

It is likely that the error is in code before what was posted. For example,
a(end)=1
The end operator must be used within an array index expression.
This error occurs because end was used to index an array that does not exist yet.

3 Kommentare

plot(H20Vs{1:end,1},H20Vs{1:end,2})
This code is very likely wrong, unless H20Vs is a 1 x N cell array for N >= 2.
If H20Vs is a 2 x something cell array, then H20Vs{1:end,1} would do cell array expansion of H20Vs{1,1}, H20Vs{2,1}, H20Vs{3,1} and so on, inserting all of the values "in place" in the command line, and then would do the same thing for H20Vs{1,2}, H20Vs{2,2}, H20Vs{3,2} and so on. The result would be as-if the call
plot(H20Vs{1,1}, H20Vs{2,1}, H20Vs{1,2}, H20Vs{2,2})
had been made. This would plot H20Vs{1,1} against H20Vs{2,1} and H20Vs{1,2} against H20Vs{2,2}. The code would not plot H20Vs{1,1} against H20Vs{2,1} and then plot H20Vs{2,1} against H20Vs{2,2} and so on.
H20Vs might be a table, in which case that syntax does not generate a comma-separated list.

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2020b

Gefragt:

Em
am 30 Sep. 2021

Kommentiert:

am 4 Jul. 2025

Community Treasure Hunt

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

Start Hunting!

Translated by