Wrong way to index: Index exceeds matrix dimensions

조회 수: 1 (최근 30일)
Fernando
Fernando 2013년 3월 20일
편집: Hideto Koizumi 2018년 8월 28일
Hi,
I'm trying to use indices to expand a vector but I keep getting an error message and I don't understand why. In particular, what I'm trying to do works in an example such as
x=[1 2 3]';
y=[.1 .5 .3]';
z=[1 1 2 2 3];
yz=y(z);
Here I have two vectors, x and z that have the same values for the indices. I want to expand the vector y to have the same dimensions as z but the values of z must be repeated according to how the index is repeated.
Now, in my application this is not working. I have two vectors X and Z, X of dimensions 2270x1 and Z of dimensions 446723x1 that contains the same indices as X but a lot of times (and each number is repeated a different number of times). To check that the indices are the same I used isequal(unique(X),unique(Z)) and the output was 1.
Finally, I have a vector Y of dimensions 2270x1 that plays the role of y in the example above. When doing YZ=Y(Z) I get ??? Index exceeds matrix dimensions.
Any ideas what is going on?
Thanks,

채택된 답변

ChristianW
ChristianW 2013년 3월 20일
max(Z) is greater then 2270?
  댓글 수: 3
Fernando
Fernando 2013년 3월 21일
This works, thanks!
Hideto Koizumi
Hideto Koizumi 2018년 8월 28일
편집: Hideto Koizumi 2018년 8월 28일
I think this method could cut off the largest element of z, if z is something like z = [1 1 2 4] and y=[.1 .5 .3 .7]';

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 20일
편집: Azzi Abdelmalek 2013년 3월 20일
Check this
size(Y)
max(Z)
What did you get?

Fernando
Fernando 2013년 3월 20일
Thanks. Yes, the max of Z is greater than the number of elements in Y, which generates the message. Is there any way to overcome this? Following on the example, if this was
x=[1 2 5]';
y=[.1 .5 .3]';
z=[1 1 2 2 5];
yz=y(z);
I get the message because max(z)> size(y). How can I get yz to be yz=[.1 .1 .5 .5 .3]';?
Thanks,

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by