Effacer les filtres
Effacer les filtres

Cell contents assignment to a non-cell array object.

2 vues (au cours des 30 derniers jours)
José
José le 29 Mai 2014
Commenté : Udit Gupta le 29 Mai 2014
hi.
i dont know why in my code is keeping me sending this error anybody can help me please my code is:
A=input('Dame el sistema de ecuaciones expresado en forma matricial');
b=input('Dame el valor de b');
k=1;
x=input('Dame el valor x0 inicial');
x{1}=x;
r{k}=(A*x{k})-b;
p{k}=-(r{k});
for k=0:10000000000;
alfa{k}=(-(((r{k}')*r{k})/((p{k}')*(A*p{k}))));
x{k+1}=x{k}+(alfa{k}*p{k});
r{k+1}=r{k}+(alfa{k}*A*p{k});
beta{k+1}=((r{k+1})'*r{k})/((r{k}')*(r{k}));
p{k+1}=-(r{k+1})+(beta{k+1}*p{k});
k=k+1;
if (r{k}<=0)
break;
end
end
and the error is the next
*Cell contents assignment to a non-cell array object.*
*Error in gradientesconjugados (line 5)*
*x{1}=x;*
if anybody can help me i would apreciate so much.
  5 commentaires
José
José le 29 Mai 2014
i think that i understood you and now i change the code to this because i want to calculate matrices
A=input('Dame el sistema de ecuaciones expresado en forma matricial');
b=input('Dame el valor de b');
k=1;
x0=input('Dame el valor x0 inicial');
r(k)=(A*x0)-b;
p(k)=-(r{k});
but now i get this error
In an assignment A(I) = B, the number of elements in B and I must be the same
if anyone can help me i would apreciate so much.
José-Luis
José-Luis le 29 Mai 2014
Have you tried the debugger?

Connectez-vous pour commenter.

Réponses (2)

Azzi Abdelmalek
Azzi Abdelmalek le 29 Mai 2014
Try this
clear
A=input('Dame el sistema de ecuaciones expresado en forma matricial');
b=input('Dame el valor de b');
k=1;
xx=input('Dame el valor x0 inicial');
x{1}=xx;
r{k}=(A*x{k})-b;
p{k}=-(r{k});
for k=0:10000000000;
alfa{k}=(-(((r{k}')*r{k})/((p{k}')*(A*p{k}))));
x{k+1}=x{k}+(alfa{k}*p{k});
r{k+1}=r{k}+(alfa{k}*A*p{k});
beta{k+1}=((r{k+1})'*r{k})/((r{k}')*(r{k}));
p{k+1}=-(r{k+1})+(beta{k+1}*p{k});
k=k+1;
if (r{k}<=0)
break;
end
end
  3 commentaires
José
José le 29 Mai 2014
Modifié(e) : José le 29 Mai 2014
a change in the code the xx and the 2 but i get the same error
Cell contents assignment to a non-cell array object.
thanks for your time
Azzi Abdelmalek
Azzi Abdelmalek le 29 Mai 2014
Have you cleared your variable x?

Connectez-vous pour commenter.


Udit Gupta
Udit Gupta le 29 Mai 2014
Instead of
x=input('Dame el valor x0 inicial');
x{1}=x;
use
temp=input('Dame el valor x0 inicial');
x{1}=temp;
  3 commentaires
Udit Gupta
Udit Gupta le 29 Mai 2014
In the same lines as before?
Udit Gupta
Udit Gupta le 29 Mai 2014
I ran this code without any error. You need to start your loop from k=1 instead of k=0.
A=input('Dame el sistema de ecuaciones expresado en forma matricial');
b=input('Dame el valor de b');
k=1;
temp=input('Dame el valor x0 inicial');
x{1}=temp;
r{k}=(A*x{k})-b;
p{k}=-(r{k});
for k=1:10000000000;
alfa{k}=(-(((r{k}')*r{k})/((p{k}')*(A*p{k}))));
x{k+1}=x{k}+(alfa{k}*p{k});
r{k+1}=r{k}+(alfa{k}*A*p{k});
beta{k+1}=((r{k+1})'*r{k})/((r{k}')*(r{k}));
p{k+1}=-(r{k+1})+(beta{k+1}*p{k});
k=k+1;
if (r{k}<=0)
break;
end
end

Connectez-vous pour commenter.

Catégories

En savoir plus sur Create System Objects dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by