Array indices must be positive integers or logical values.

1 visualización (últimos 30 días)
Irfan Tariq
Irfan Tariq el 9 de Sept. de 2019
Comentada: Stephen23 el 9 de Sept. de 2019
I am getting above error.
data_out(i,1:dtn)=data_in_temp(colum-dtn+1):colum)
where dataout =1586*128 double
row=1586;
colum=128
dtn=129;
data_in_temp=1*128
  4 comentarios
Bjorn Gustavsson
Bjorn Gustavsson el 9 de Sept. de 2019
colum-dtn+1
should become 0 with the values you've given, matlab uses 1-based indexing, so your indices has to be larger than zero. Possibly your left-hand-side index i is also unallowed, but if you've set that one to a positive integer then it's OK (I've stopped use i and j as indices - sooner or later one tend to use them for their purpose of the imaginary 1i. Instead I use i1, i2 and j1 etc for simple loop-variables, that saves me from occasional but very irritating bugs and errors.)
HTH
Fabio Freschi
Fabio Freschi el 9 de Sept. de 2019
true, but the error pointed out by the OP is about wrong indexing

Iniciar sesión para comentar.

Respuestas (2)

Stephen23
Stephen23 el 9 de Sept. de 2019
Editada: Stephen23 el 9 de Sept. de 2019
Check your indexing:
>> colum = 128;
>> dtn = 129;
>> colum-dtn+1
ans = 0
MATLAB indexing start at 1.
  2 comentarios
Irfan Tariq
Irfan Tariq el 9 de Sept. de 2019
so what should be the valid syntax for the above soultion.

Iniciar sesión para comentar.


TADA
TADA el 9 de Sept. de 2019
in Matlab, matrix indices start from one, not zero like other programming languages, but your index starts from zero:
colum-dtn+1 = 0
so what you are actually doing is this:
data_out(i,1:129)=data_in_temp(0:128)
I guess what you did try to do is more like copy the entire row of data_in_temp into the i'th row of data_out?
if so, try this:
data_out(i,:) = data_in_temp
or if you are trying to copy a subset of that row, make sure the index of data_in_temp is the same size as that of data_out

Categorías

Más información sobre Matrix Indexing 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!

Translated by