Importing data from HFSS and ploting in matlab

I designed a dipole in HFSS and exported the polar radiation pattern in csv format to matlab. now, i need help on how to plot the data and get the same result as HFSS. I also attached the raw csv format.

 Respuesta aceptada

Dan Klemfuss
Dan Klemfuss el 18 de Nov. de 2017
Good Evening Mordecai. The following code ingests and plots the data in a figure for each Phi angle. Please let me know if you have any questions.
[num, txt] = xlsread('pat.csv');
theta_polar_deg = num(:,1);
theta_polar_rad = deg2rad(theta_polar_deg);
for i = 1:length(txt-1)
figure('Name',txt{i},'NumberTitle','off','MenuBar','none');
Gain = num(:,i);
polarplot(theta_polar_rad, Gain,'r')
rlim([min(Gain)-5 max(Gain)+5]);
ax = gca;
ax.RTick = [-38 -26 -14 -2];
ax.ThetaDir = 'clockwise';
ax.ThetaZeroLocation = 'top';
plotTitle = sprintf('Radiation Pattern %d',i);
title(plotTitle)
end

7 comentarios

Mordecai Raji
Mordecai Raji el 18 de Nov. de 2017
Hi DRK, thanks for your help but i got this error Undefined operator '-' for input arguments of type 'cell'. Error in mathelp (line 7) for i = 1:length(txt-1)
help me out! thanks
Good evening. I accidentally added the -1 inside the parenthesis, it should have been for i = 1:length(txt)-1. Please try the updated code below:
[num, txt] = xlsread('pat.csv');
theta_polar_deg = num(:,1);
theta_polar_rad = deg2rad(theta_polar_deg);
for i = 1:length(txt)-1
figure('Name',txt{i},'NumberTitle','off','MenuBar','none');
Gain = num(:,i);
polarplot(theta_polar_rad, Gain,'r')
rlim([min(Gain)-5 max(Gain)+5]);
ax = gca;
ax.RTick = [-38 -26 -14 -2];
ax.ThetaDir = 'clockwise';
ax.ThetaZeroLocation = 'top';
plotTitle = sprintf('Radiation Pattern %d',i);
title(plotTitle)
end
Mordecai Raji
Mordecai Raji el 21 de Nov. de 2017
Hi, i got this result. i have tried tweaking it but can't get something close. You gotta help me please!
Hello Mordecai. I'm not sure why you got that result. I noticed in the CSV, column A has the theta values, so I modified the code to omit this column in the loop (that's why it is now "for i=2:length(txt)"). Please try the below code, I've attached an example of the output I am getting. Let me know if this works!
[num, txt] = xlsread('pat.csv');
theta_polar_deg = num(:,1);
theta_polar_rad = deg2rad(theta_polar_deg);
for i = 2:length(txt)
figure('Name',txt{i},'NumberTitle','off','MenuBar','none');
Gain = num(:,i);
polarplot(theta_polar_rad, Gain,'r')
rlim([min(Gain)-5 max(Gain)+5]);
ax = gca;
ax.RTick = [-38 -26 -14 -2];
ax.ThetaDir = 'clockwise';
ax.ThetaZeroLocation = 'top';
plotTitle = sprintf('Radiation Pattern %d',i-1);
title(plotTitle)
end
Dan Klemfuss
Dan Klemfuss el 23 de Nov. de 2017
P.S. This is the pat.csv file I was using, if it doesn't match the format you are using that may explain why you got a different result.
Mordecai Raji
Mordecai Raji el 24 de Nov. de 2017
Oh thanks, it works now. Great!
mahdi reshadat
mahdi reshadat el 11 de En. de 2018
Editada: mahdi reshadat el 11 de En. de 2018
I have same project so i do your work but i give this error. What can i do?
Error is: Undefined function 'polarplot' for input arguments of type 'double'.
Error in Help (line 10) polarplot(theta_polar_rad, Gain,'r')

Iniciar sesión para comentar.

Más respuestas (1)

Mordecai Raji
Mordecai Raji el 12 de En. de 2018
Editada: Mordecai Raji el 12 de En. de 2018

0 votos

Hi Mahdi, I think it's your MATLAB version. Instead use the function 'polar' instead of polarplot. I.e polar(theta_polar_rad, Gain, 'r')

Categorías

Más información sobre Environment and Settings en Centro de ayuda y File Exchange.

Preguntada:

el 17 de Nov. de 2017

Comentada:

el 18 de En. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by