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.

 Accepted Answer

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 Comments

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
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
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.
Oh thanks, it works now. Great!
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')

Sign in to comment.

More Answers (1)

Mordecai Raji
Mordecai Raji on 12 Jan 2018
Edited: Mordecai Raji on 12 Jan 2018
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')

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!