Info

此问题已关闭。 请重新打开它进行编辑或回答。

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

1 次查看(过去 30 天)
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

回答(3 个)

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

Walter Roberson
Walter Roberson 2015-11-29
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

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by