The end operator must be used within an array index expression

140 vues (au cours des 30 derniers jours)
Nisar Ahmed
Nisar Ahmed le 15 Sep 2020
Commenté : Steven Lord le 18 Mai 2022
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 commentaires
Nisar Ahmed
Nisar Ahmed le 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 le 15 Sep 2020
What is size of Vp.rss? Is it taking matrix inside the function?

Connectez-vous pour commenter.

Réponse acceptée

Steven Lord
Steven Lord le 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 commentaires
MUNEEB AHMAD
MUNEEB AHMAD le 18 Mai 2022
Modifié(e) : MUNEEB AHMAD le 18 Mai 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 le 18 Mai 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by