Index exceeds matrix dimensions when I tried to execute this code.
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Saint Dee
le 9 Avr 2018
Commenté : Walter Roberson
le 9 Avr 2018
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 commentaires
KSSV
le 9 Avr 2018
Which line it showed error? YOu need to check the dimensions of b and rate....are they of size 10*100?
Réponse acceptée
Walter Roberson
le 9 Avr 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 commentaires
Walter Roberson
le 9 Avr 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,:)) )
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!