ERROR: Undefined function 'sum' for input arguments of type 'cell'. Kindly help me resolve the error.

9 views (last 30 days)
Swathi S
Swathi S on 30 Apr 2019
Edited: madhan ravi on 30 Apr 2019
ERROR:
Undefined function 'sum' for input arguments of type 'cell'.
Error in PSCCandPSSCoptiWdVss (line 45)
p=sum(arrayfun(@(x) x*wdwd, 1:2*N, 'un', 0));
CODE:
clear all;
close all;
d=1;
f=9*10^6;
w=2*pi*f;
u=4*pi*(10^-7);
N=15
%ro=1.72*(10^-8); %copper
ro=0.0005 % Resistance
dout=0.15
t=0.000035
wd=[0.005 0.006 0.007 0.008]
s=[0.006 0.007 0.008 0.009]
%Saad Mutasgar
[wdwd,ss]=meshgrid(wd,s);
C1=1
C2=2.46
C3=0
C4=0.2
din=dout-(2*N*wdwd)-((2*N-2)*ss)
rout=dout/2
rin=din/2
U=2;
phi=(dout-din)/(dout+din)
davg=0.5*(dout+din)
L0=((C1.*u.*N.*N.*davg)./2).*(log(C2./phi)+(C3.*phi)+(C4.*phi.*phi))
M_cir=((u.*N.*(dout.^2).*N.*(dout.^2).*pi)./(2.*sqrt(((dout.^2)+(d.^2)).^3)))
syms x
p=sum(arrayfun(@(x) x*wdwd, 1:2*N, 'un', 0));
q=sum(arrayfun(@(x) x*ss, 1:((2*N)-1)))

Accepted Answer

KSSV
KSSV on 30 Apr 2019
Edited: KSSV on 30 Apr 2019
Use
p = cellfun(@sum,arrayfun(@(x) x*wdwd, 1:2*N, 'un', 0),'un',0) ;
instead:
p=sum(arrayfun(@(x) x*wdwd, 1:2*N, 'un', 0));
As the output is cell...you need to use cellfun like arrayfun.
  3 Comments

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 30 Apr 2019
% remove syms x
p = sum(cell2mat(arrayfun(...))) % same goes for q
  3 Comments

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!