The end operator must be used within an array index expression

134 views (last 30 days)
How to fix this error:
The end operator must be used within an array index expression.
Error in .... (line 17)
shot = shot(101:end,1);
  7 Comments
Nisar Ahmed
Nisar Ahmed on 15 Sep 2020
[vp,modhdr] = (ReadRSS('Vp.rss'));
vp = squeeze(vp(1,1,:));
% pad vp with more samples in order to make at least 5 seconds of VRMS
vp = [vp; ones(1500,1)*vp(end)];
[nz] = size(vp,1);
dx = modhdr.geometry.D(1);
dz = modhdr.geometry.D(3);
%% Read data and get sizes
[Shot, dathdr] = ReadRSS('Pshot.rss');
shot = shot(101:end,1);
[nt, ntr] = size(Shot);
dt = dathdr.geometry.D(1);
time_i = (0:nt-1)*dt;
time_i = time_i.';
KSSV
KSSV on 15 Sep 2020
What is size of Vp.rss? Is it taking matrix inside the function?

Sign in to comment.

Accepted Answer

Steven Lord
Steven Lord on 15 Sep 2020
The identifiers shot (all lower-case) and Shot (first letter capitalized) are two different things in MATLAB. Did you mean to index into Shot instead of shot?
  3 Comments
MUNEEB AHMAD
MUNEEB AHMAD on 18 May 2022
Edited: MUNEEB AHMAD on 18 May 2022
The end operator must be used within an array index expression.
Error in test2 (line 5)
BER(i)=ber(end,1);
This is the code.
gama_dB=0:0.5:10;
for i=1:length(gama_dB)
g_dB=gama_dB(i);
sim('Bpsk2')
BER(i)=ber(end,1);
end
Why is this error coming here? plese help.
Steven Lord
Steven Lord on 18 May 2022
Nothing in your code defines a variable named ber. Do you have a function named ber accessible to MATLAB? If so that last command inside the for statement tries to call that function with end and 1 as the two inputs. But MATLAB doesn't know how to interpret end in that context and so throws an error.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!