Cell contents assignment to a non-cell array object.

6 ビュー (過去 30 日間)
José
José 2014 年 5 月 29 日
コメント済み: Udit Gupta 2014 年 5 月 29 日
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 件のコメント
José
José 2014 年 5 月 29 日
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 2014 年 5 月 29 日
Have you tried the debugger?

サインインしてコメントする。

回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 5 月 29 日
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 件のコメント
José
José 2014 年 5 月 29 日
編集済み: José 2014 年 5 月 29 日
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 2014 年 5 月 29 日
Have you cleared your variable x?

サインインしてコメントする。


Udit Gupta
Udit Gupta 2014 年 5 月 29 日
Instead of
x=input('Dame el valor x0 inicial');
x{1}=x;
use
temp=input('Dame el valor x0 inicial');
x{1}=temp;
  3 件のコメント
Udit Gupta
Udit Gupta 2014 年 5 月 29 日
In the same lines as before?
Udit Gupta
Udit Gupta 2014 年 5 月 29 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeHolidays / Seasons についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by