Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

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

1 vue (au cours des 30 derniers jours)
Ray
Ray le 28 Nov 2015
Clôturé : MATLAB Answer Bot le 20 Août 2021
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

Réponses (3)

the cyclist
the cyclist le 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 le 28 Nov 2015

Walter Roberson
Walter Roberson le 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

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by