Info
此问题已关闭。 请重新打开它进行编辑或回答。
Unusual size of array
1 次查看(过去 30 天)
显示 更早的评论
close all;
clc;
clear;
sobj=sparameters('W=2um_L=20um.s2p');
s=sobj.Parameters;
freq=sobj.Frequencies;
y_params = s2y(s);
y11=y_params(1,1,:);
y12=y_params(1,2,:);
y21=y_params(2,1,:);
y22=y_params(2,2,:);
Ca=(imag(y11+y12))./(2*pi.*freq);
Cb=(imag(y22+y21))./(2*pi.*freq);
R=real(-1/y21);
L=(imag(-1/y21))./(4*pi*freq);
In the code above I converted S parameter in s2p file attached to y parameters, and I am trying to to calculate some values from that. However for some reason the size of Ca, Cb and L arrays is unusual, according to me they should be 1D arrays with 201 values, however when calculated they come out to be 201X201 values.
Can someone point out the mistake in my code? I am very new to this, any optimisation and use of objects and how I am accesing y parameters, any improvement will be highly appreciated.
Thankyou in advance.
2 个评论
David Hill
2020-8-13
You just need to examine the sizes of your arrays in your workspace. I suspect that freq matrix is a 201x201. Not sure how you want to handle it.
R=real(-1./y21);%I believe you need ./
L=(imag(-1./y21))./(4*pi*freq);%same here
回答(1 个)
Bruno Luong
2020-8-17
Try this
sobj=sparameters('W=2um_L=20um.s2p');
s=sobj.Parameters;
freq=sobj.Frequencies;
y_params = s2y(s);
y11=y_params(1,1,:);
y12=y_params(1,2,:);
y21=y_params(2,1,:);
y22=y_params(2,2,:);
Ca=(imag(y11(:)+y12(:)))./(2*pi.*freq(:));
Cb=(imag(y22(:)+y21(:)))./(2*pi.*freq(:));
R=real(-1./y21(:));
L=(imag(-1./y21(:)))./(4*pi*freq(:));
0 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!