The end operator must be used within an array index expression

need to solve please this error:
The end operator must be used within an array index
expression.
Error in clases y comandos (line 166)
y(1:end,1) - y(2:end);
this is the code:
a=arduino
fs=1500
N=1000
d=zeros(N,1)
t=linspace(0,(N-1)/fs,N)
t=transpose(t)
z=zeros(N,1)
entrada=line(nan,nan,'color','g','linewidth',0.5)
salida=line(nan,nan,'color','r','linewidth',0.5)
ylim([-0.1,5.1])
xlim([0 (N-1)/fs])
grid
stop=1
uicontrol('Style','pushButton','String','FINALIZAR','Callback','Stop = 0;')
tic
while stop
if toc < 1/fs
tic
y(1:end-1) = y(2:end-1);
y=readVoltage(a,'A0')
set(entrada,'Xdata',t,'Ydata',y)
z(1:end) = z(2:end)
z=readVoltage(a,'A1')
set(salida,'Xdata',t,'Ydata',z)
drawnow
end
%
end

댓글 수: 3

Please define what y is. Your expression assumes y is both two dimensions and one dimension. Or describe clearly what you are trying to do.
Please post the relevant part of the code and a copy of the complete error message. This is not the complete line:
y(1:end,1) - y(2:end);
Jan
Jan 2022년 10월 11일
편집: Jan 2022년 10월 11일
Please do not let the readers guess, which one is the line 166. The mentioned line "y(1:end,1) - y(2:end);" does not occur in the shown code. the cyclist hits the point, that "y(1:end,1) = y(2:end)" is meant.
I've formatted your code. You can use the tools above the field for editing by your own in the future.

댓글을 달려면 로그인하십시오.

답변 (1개)

the cyclist
the cyclist 2022년 10월 10일
편집: the cyclist 2022년 10월 10일
In your code, you have not yet created any variable named y, before you call this line:
y(1:end-1) = y(2:end-1)
The end operator must be used within an array index expression.
Therefore, you get this error message because you cannot index a variable that does not exist.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2022년 10월 10일

편집:

Jan
2022년 10월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by