Unusual size of array

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 Comments

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
This is the workspace, as you can see freq is 1D array.
About the ./ , I did that earlier, it did not have any change in the results.

Answers (1)

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(:));

This question is closed.

Products

Release

R2019b

Asked:

on 13 Aug 2020

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!