Cell contents assignment to a non-cell array object.

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 comentarios

Mahdi
Mahdi el 29 de Mayo de 2014
Why are you defining the variables in a cell when you want to perform calculations on them? Why not just use matrices and then convert the result into a cell?
José
José el 29 de Mayo de 2014
Editada: José el 29 de Mayo de 2014
one question
how i do that? o.o
i need to use the result of the last calculation to do the next one
for example
i need r1 to calculate r2
thanks
James Tursa
James Tursa el 29 de Mayo de 2014
Editada: James Tursa el 29 de Mayo de 2014
How many iterations do you expect this to take before the break happens? If the iterations go all the way to 10000000000, that will take about 2.7 terabytes of memory just to hold the variable header information (60 bytes each), and probably a gazillion hours of time since you are increasing the size of these cell arrays within a loop.
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 el 29 de Mayo de 2014
Have you tried the debugger?

Iniciar sesión para comentar.

Respuestas (2)

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 comentarios

Mahdi
Mahdi el 29 de Mayo de 2014
Editada: Mahdi el 29 de Mayo de 2014
Also, change the for statement to be:
for k=2:10000000000;
If your goal is to populate the elements after the first one you inputted.
Even then, I don't think it will work because you'll get NaN's as outputs.
José
José el 29 de Mayo de 2014
Editada: José el 29 de Mayo de 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
Have you cleared your variable x?

Iniciar sesión para comentar.

Udit Gupta
Udit Gupta el 29 de Mayo de 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 comentarios

José
José el 29 de Mayo de 2014
it gives me the same error
Cell contents assignment to a non-cell array object.
thanks
Udit Gupta
Udit Gupta el 29 de Mayo de 2014
In the same lines as before?
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

Iniciar sesión para comentar.

Categorías

Más información sobre Holidays / Seasons en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 29 de Mayo de 2014

Comentada:

el 29 de Mayo de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by