"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.

 Risposta accettata

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 Commento

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.

Accedi per commentare.

Più risposte (1)

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 Commenti

Hi,
Sorry, how can i run it separately?
Thanks.
d = (distance(c(i,:),x(j,:))/distance(c(k,:),x(j,:)))^(2/(m_exponent-1));
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.

Accedi per commentare.

Categorie

Scopri di più su Fuzzy Logic Toolbox in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by