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

10 views (last 30 days)
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.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!