"Subscripted assignment dimension mismatch." error matlab

Hi,
I do not know why I have "Subscripted assignment dimension mismatch." error at line u(i,j)=1./sum_d;. Below is my coding:
%update U
for i=1:nc
for j=1:o
sum_d=0;
for k=1:nc
sum_d = sum_d + (distance(c(i,:),x(j,:))/distance(c(k,:),x(j,:)))^(2/(m_exponent-1));
end
u(i,j)=1./sum_d;
end
end
Hope to get the solution soon.Thanks.

 채택된 답변

Walter Roberson
Walter Roberson 2014년 3월 2일

0 개 추천

What size() does distance(c(i,:),x(j,:)) return? If it is not a scalar then you would be doing "/" between two arrays which is possibly not going to return a scalar.

댓글 수: 1

Hi, how can I know the size of distance(c(i,:),x(j,:)) return? I am sorry I am just a new beginner of matlab user.

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

추가 답변 (1개)

Star Strider
Star Strider 2014년 3월 2일
I suggest you run this statement separately (it’s now part of your sum_d statement)
(distance(c(i,:),x(j,:))/distance(c(k,:),x(j,:)))^(2/(m_exponent-1));
and check its dimensions. It might be a vector, meaning that sum_d will be a vector.
This line
u(i,j)=1./sum_d;
wants sum_d to be a scalar.

댓글 수: 5

Hi,
Sorry, how can i run it separately?
Thanks.
d = (distance(c(i,:),x(j,:))/distance(c(k,:),x(j,:)))^(2/(m_exponent-1));
Ong Teng
Ong Teng 2014년 3월 2일
편집: Ong Teng 2014년 3월 2일
Hi,
Do u means run the code as below? But I still get the same error. Please help me to solve, please.I am just a new beginner using Matlab. Thanks
%update U
for i=1:nc
for j=1:o
sum_d=0;
for k=1:nc
sum_dx=(distance(c(i,:),x(j,:))/distance(c(k,:),x(j,:)))^(2/(m_exponent-1));
sum_d = sum_d + sum_dx;
end
u(i,j)=1./sum_d;
end
end
Hi,
How can I change this line
u(i,j)=1./sum_d;
wants sum_d to be a vector.
Hi,
Can anyone pls help me on this problem please?
Thanks.

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

카테고리

도움말 센터File Exchange에서 Fuzzy Logic Toolbox에 대해 자세히 알아보기

질문:

2014년 3월 2일

댓글:

2014년 3월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by