Info

# Cell contents reference from a non-cell array object ERROR

1 view (last 30 days)
Hamid on 15 Dec 2014
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi everybody, error occurs in Ed=Ed{j};
I don't know what is it and will be grateful for any suggestion.
Ned=zeros(ne,1);
for i=1:ne
for j=1:lc
Ed=Ed{j};
Ned(i)=bar3s(Ex(i,:),Ey(i,:),Ez(i,:),[E Ep(i,1)],Ed(i,:));
end
end
--------------------------------------------------------------
function [es]=bar3s(ex,ey,ez,ep,ed)
b=[ ex(2)-ex(1); ey(2)-ey(1); ez(2)-ez(1) ];
L=sqrt(b'*b);
n=b'/L; G=[ n zeros(size(n)); zeros(size(n)) n ];
E=ep(1); A=ep(2); Kle=E*A/L*[ 1 -1; 1 1];
N=E*A/L*[-1 1]*G*ed';
es=N;

David Sanchez on 15 Dec 2014
Ed{j} is the content of element j within cell array Ed, and you are trying to assign that value to the cell array itself Ed:
Ed=Ed{j}; %!!!!!
##### 2 CommentsShowHide 1 older comment
David Sanchez on 15 Dec 2014
You might try something like this:
Ned=zeros(ne,1);
for i=1:ne
for j=1:lc
% Ed=Ed{j}; %%%%%no need for this line
Ned(i)=bar3s(Ex(i,:),Ey(i,:),Ez(i,:),[E Ep(i,1)],Ed{j}(i,:)); % the cell content is plugged with no need of intermediaries
end
end

### Community Treasure Hunt

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

Start Hunting!