problem with assigning in a loop

my code runs correctly when lc is 1,I want lc>1 ;
Ed is 45*6 matrix and I think there is a way to assign Ed for lc>1 .
What can I do?
please help.
for i=1:lc
ff=f(:,i);
[a,r]=solveq(K,ff,bc);
Ed=extract(Edof,a);
end
----------------------------------------
function [ed]=extract(edof,a)
[nie,n]=size(edof);
t=edof(:,2:n);
for i = 1:nie
ed(i,1:(n-1))=a(t(i,:))';
end

 Risposta accettata

Image Analyst
Image Analyst il 14 Dic 2014
Modificato: Image Analyst il 14 Dic 2014
Store the various values of Ed for different iterations in a cell array
Ed{i} =extract(Edof,a);
or a 3D array
thisEd=extract(Edof,a);
allEd(:,:,i) = thisEd;
If you use a 3D array, be sure to preallocate before the loop starts
Ed=allED(45,6,lc);

3 Commenti

Thank you my friend,
It's good help but I got this error, how can I fix this?
??? Cell contents assignment to a non-cell array object.
Ed{i} =extract(Edof,a);
Thanks.
Maybe you need to define Ed as a cell before the loop
Ed = cell(1, lc);
Hamid
Hamid il 14 Dic 2014
excellent, thanks.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Tag

Richiesto:

il 14 Dic 2014

Commentato:

il 14 Dic 2014

Community Treasure Hunt

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

Start Hunting!

Translated by