The end operator must be used within an array index expression

140 次查看(过去 30 天)
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 个评论
Nisar Ahmed
Nisar Ahmed 2020-9-15
[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.';

请先登录,再进行评论。

采纳的回答

Steven Lord
Steven Lord 2020-9-15
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 个评论
MUNEEB AHMAD
MUNEEB AHMAD 2022-5-18
编辑:MUNEEB AHMAD 2022-5-18
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 2022-5-18
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by