error message 'The end operator must be used within an array index expression.'
Ältere Kommentare anzeigen
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
This error occurs because end was used to index an array that does not exist yet.
3 Kommentare
Walter Roberson
am 4 Jul. 2025
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.
Stephen23
am 4 Jul. 2025
H20Vs might be a table, in which case that syntax does not generate a comma-separated list.
Walter Roberson
am 4 Jul. 2025
Good point about tables.
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!