Clear Filters
Clear Filters

Why is this error occuring in my code.

1 view (last 30 days)
Muneeb Ahmad
Muneeb Ahmad on 2 Nov 2017
Edited: KL on 2 Nov 2017
Index exceeds matrix dimensions.
Error in test2 (line 20) C2(i) = B*log2(1+min(i));

Accepted Answer

KL
KL on 2 Nov 2017
Edited: KL on 2 Nov 2017
you're getting the error because you forgot to index B,
C2(i) = B(i)*log2(1+min(i))
But anyway, what do you even mean by min(i), i in your case is just a scalar.
I'd recommend you to rename the loop varible , i, to something else since i is the default imaginary unit in matlab. Nextly, pre-allocate A, B, C2 and d properly. For example,
A = zeros(1,length(ro_db))
TIP: when you see read underlines on your code, it means matlab is trying to help you by giving some warning and even recommendations, do not ignore them.
  2 Comments
Muneeb Ahmad
Muneeb Ahmad on 2 Nov 2017
Subscript indices must either be real positive integers or logicals.
Error in test2 (line 18) C2(i) = B*log2(1+(min(A,B)));
still getting this error others things are ok now.
KL
KL on 2 Nov 2017
Edited: KL on 2 Nov 2017
Again, you're not indexing A or B in your equation!
C2(i) = B(i)*log2(1+min(A(i),B(i)))

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!