Subscripted assignment dimension mismatch after integration

3 次查看(过去 30 天)
The following is the code I used -
q=10e8:(20e9-10e8)/1000:20e9;
q=q';
s=length(q);
epso = 8.8 *10.^-12;
epsr=5.7;
ro=3.63*(10.^-3);
epsl = 2.5;
ri=1.13*(10.^-3);
copen = (epso/sqrt(epsr)*log(ro/ri));
cload= (epsl/sqrt(epsr)*log(ro/ri));
t = zeros(1,s);
for f = 1:length(q)
fun = @(x)((((((besselj(0,(2*pi*q(f))/(3e8))*x*ro)-besselj(0,(2*pi*q(f))/(3e8))*x*ri)).^2)./x)*freload(x,q));
y(f) = copen*abs(integral(fun,0,Inf,'Arrayvalued',true));
t(f)=(1-y(f))/(1+y(f));
end
plot (q,t);
where the function freload is as follows -
function f = freload(x,q)
epsl=3.4-0.001j;
f=(1./sqrt(epsl-(x.^2))).*(1+exp(-2*1i*2*pi*q./(3e8).*sqrt(epsl-(x.^2))))./((1-exp(-2*1i*2*pi*q/(3e8).*sqrt(epsl-(x.^2)))));
end
The error i get is as follows - Subscripted assignment dimension mismatch.
Error in numint (line 14) y(f) = copen*abs(integral(fun,0,Inf,'arrayvalued',true));
Any help or suggestion would be greatly appreciated. Thanks

采纳的回答

KSSV
KSSV 2017-9-18
YOu have to initialize your t and y as cells.....the output of the line which throws error is a vector, and you are storing it as a scalar...so error popping out.
q=10e8:(20e9-10e8)/1000:20e9;
q=q';
s=length(q);
epso = 8.8 *10.^-12;
epsr=5.7;
ro=3.63*(10.^-3);
epsl = 2.5;
ri=1.13*(10.^-3);
copen = (epso/sqrt(epsr)*log(ro/ri));
cload= (epsl/sqrt(epsr)*log(ro/ri));
t = zeros(1,s);
y = cell(length(q),1) ;
t = cell(length(q),1) ;
for f = 1:length(q)
fun = @(x)((((((besselj(0,(2*pi*q(f))/(3e8))*x*ro)-besselj(0,(2*pi*q(f))/(3e8))*x*ri)).^2)./x)*freload(x,q));
y{f} = copen*abs(integral(fun,0,Inf,'Arrayvalued',true));
t{f}=(1-y{f})./(1+y{f});
end
Now y and t are cells...you can do what you want with them.
  1 个评论
Jay
Jay 2017-9-19
Thanks for taking the time to answer my question. But now t is a cell. I intended to plot t as a function of q. Now, I am unable to do so. Is there any way to overcome this ? I know I could extract the data, but I wanted the range of values for t.
Thanks a lot.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 NaNs 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by