?S = getsweepresult("MMI_AccessWidth","S"); filename = "MMI_S_parameters.xml"; table = "MMI_extracted"; design = cell(3); extracted = cell(1); #open file to write table lookupopen( filename, table ); design{1} = struct; design{1}.name = "MMI_Length"; design{2} = struct; design{2}.name = "MMI_Width"; design{3} = struct; design{3}.name = "MMI_AccessWidth"; extracted{1} = struct; extracted{1}.name = "out_MMI_filename"; ?MMI_Length = S.L_pi; ?MMI_Width = S.MMI_Width; ?MMI_AccessWidth = S.MMI_Access; f = S.f; # export to file for INTERCONNECT n_ports = 4; mode_label = 'TE'; mode_ID = "1"; input_type = 'transmission'; for(A = 1:length(MMI_AccessWidth)) { for(W = 1:length(MMI_Width)) { for(L = 1:length(MMI_Length)) { design{1}.value = MMI_Length(L); design{2}.value = MMI_Width(W); design{3}.value = MMI_AccessWidth(A); #extracted (output results) out_filename = 'MMI_AccessWidth_'+num2str(MMI_AccessWidth(A)*1e6)+'um' +'_MMI_Width_'+num2str(MMI_Width(W)*1e6)+'um' +'MMI_Length_'+num2str(MMI_Length(L)*1e6)+'um'+'.txt'; for (ip=1:n_ports){ for (jp=1:n_ports){ S_out = S.getattribute('S'+num2str(ip)+num2str(jp)); S_out = pinch(S_out(1:length(f),L,W,A)); #watch out for the L,W,A order write(out_filename, "(\"port "+num2str(ip)+"\",\""+mode_label+"\","+mode_ID+",\"port "+num2str(jp)+"\","+mode_ID+",\""+input_type+"\")"); write(out_filename, "("+num2str(length(f))+",3)"); data_out = [f, abs(S_out), unwrap(angle(S_out))]; write(out_filename, num2str(data_out)); } } extracted{1}.value = out_filename; #write design/extracted pair lookupwrite( filename, design, extracted ); } } } #close file lookupclose( filename );