"Index exceeds array dimensions. Index value 2 exceeds valid range [1-1] for array" --How to solve this?
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sunandan Adhikary
el 18 de Oct. de 2020
Comentada: Sunandan Adhikary
el 22 de Oct. de 2020
Whenever I am trying to update a 2-dimensional array in a loop matlab throws this error!
%% initialized in workspace
s.t(1)=0*0.1;
%% update via a function
for i=1:10 % implemented via simulink counter and increment block
func op= fcn(i)
s.t(i+1)=i*0.1
end
end
0 comentarios
Respuesta aceptada
Walter Roberson
el 21 de Oct. de 2020
In Simulink,
s.t(1)=0*0.1;
defines s.t as being a scalar value that is not permitted to increase in size.
In Simulink, you need to initialize variables to the maximum size they could use. You can reduce the size of the variable later if you need to, but you cannot increase it in size. (See, though, coder.varsize() )
Your code runs to s.t(10+1) so your s.t is length 11. Initialize it as
s.t = zeros(11,1);
Más respuestas (1)
Prudhvi Peddagoni
el 21 de Oct. de 2020
Hi,
The error you mentioned occurs when you try to access an array element which is out of it's length.
If you are trying to update s.t array such that s.t(i+1)=i*0.1
s.t(1)=0*0.1;
for i=1:10
s.t(i+1)=i*0.1
end
if not, can you post more information about what you are trying to do
Hope this helps.
1 comentario
Ver también
Categorías
Más información sobre Simulink Functions en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!