Azzera filtri
Azzera filtri

Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

I get this error "Subscript indices must either be real positive integers or logicals."

2 visualizzazioni (ultimi 30 giorni)
I have the following loop. It runs fine when r=1, but it gives me the following error when r=2 "Subscript indices must either be real positive integers or logicals."
for r=1:m
H_MMSE(:,r) = H_MMSE(RxP(:,r),TxP(:,r),N,pilotFrequency,h,SNR);
end

Risposte (3)

the cyclist
the cyclist il 28 Nov 2015
The proximate cause is most likely that RxP(:,r) and/or TxP(:,r) are returning non-integer values, so you are trying to index into the array H_MMSE at a non-existent location.
A larger issue is that it looks like you may have defined H_MMSE as both a function and as an array variable. You shouldn't do that. Try renaming one of them.

Image Analyst
Image Analyst il 28 Nov 2015

Walter Roberson
Walter Roberson il 29 Nov 2015
H_MMSE is a function before this starts. The function is invoked on the first iteration, and then the array H_MMSE is assigned to because it is the name that appears on the left hand side. So at iteration 2, H_MMSE is no longer a function and is instead now a array and you to access the array with parameters that belong to a function.
Change the name that you are assigning the value to.
for r=1:m
H_MMSE_vals(:,r) = H_MMSE(RxP(:,r),TxP(:,r),N,pilotFrequency,h,SNR);
end

Questa domanda è chiusa.

Community Treasure Hunt

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

Start Hunting!

Translated by