Index exceeds matrix dimensions when I tried to execute this code.

1 visualización (últimos 30 días)
for i = 1:I %%I = 10
for k = 1:K %%K = 100
rate(i,k,:) = W*log2(1+sinr); %%W = 20*10^6
energy_eff(i,k) = (b(i,k)*rate(i,k)/P_ci); %%b=linspace(0,1,10)
  2 comentarios
KSSV
KSSV el 9 de Abr. de 2018
Which line it showed error? YOu need to check the dimensions of b and rate....are they of size 10*100?
Saint Dee
Saint Dee el 9 de Abr. de 2018
On the fourth line : energy_eff(i,k)

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 9 de Abr. de 2018
b=linspace(0,1,10)
so it is a row vector. But in the line
energy_eff(i,k) = (b(i,k)*rate(i,k)/P_ci); %%b=linspace(0,1,10)
you are trying to index b(i,k) which is going to fail as soon as i becomes 2.
  2 comentarios
Saint Dee
Saint Dee el 9 de Abr. de 2018
Thank you Walter. How do I correct that please? There are no strict rules for the values.I really want to plot sinr against energy_eff and rate. Thanks.
Walter Roberson
Walter Roberson el 9 de Abr. de 2018
I do not know what your equations are. For this purpose, element-by-element multiplication is important compared to matrix multiplication.
Also, I just noticed that you assign to rate(i,k,:) but on that 4th line you access rate(i,k) with no third dimension.
My guess is you need
b'*squeeze(rate(i,k,:))
or something like that. Or
dot(b, squeeze(rate(i,k,:)) )

Iniciar sesión para comentar.

Más respuestas (0)

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