Question
I've worked through a lot of examples, it is easy to create a plot for a phased-antenna array, one which is scanned to several angles using the plotResponse function. I'm sure it is easy to do what I want, just not for me.... which is get the numbers plotted on the plot. They are directivity referenced, etc. Values from a 3D plot would be helpful too. this command line is used to retrieve the actual numbers which represent the pattern: "el_pat = abs(step(sArrayResponse,fmax,el_ang));" The step function seems to be the answer to all problems of the world, but if I want to put my own weights to point the main beam in a particular direction, meaning in for ea element/s for the phases and possibly amplitude, I have not figured out how I can get just the pattern numbers (angle-magnitude) out afterwards. I would also like the values output for a 3D plot as well. This code produces a pattern I want the actual numbers from: frequency = 3e9 propagationSpeed = physconst('lightspeed') h = phased.URA; h.ElementSpacing = [0.0408163265306122 0.0408163265306122]; h.Size = [8 16]; h.Lattice = 'Rectangular'; % The element is just a cosine element h.Element = ... phased.CosineAntennaElement('CosinePower',[2 2]); %Assign steering angles, frequencies and propagation speed steeringAngle = [0;30]; %Steering angle %Calculate Steering Weights w = zeros(getNumElements(h), length(frequency)); elementVector = phased.SteeringVector('SensorArray',h, ... 'PropagationSpeed', 300000000,... 'IncludeElementResponse',true);%SV steering vector %Find the weights and the strings for the legend for idx = 1:length(frequency) w(:, idx) = step(elementVector, frequency(idx), steeringAngle(:, idx)); end figure; plotResponse(h, frequency, propagationSpeed, 'Unit','dbi', ... 'Format', 'Line', 'RespCut', 'El', 'weights', w);
Expert Answer
Kshitij Singh
PhD Expert
Answered Aug 25, 2026
What version of Phased Array System Toolbox do you have? If you are using R2014b, then you can use directivity method to retrieve the value, for example, to get the data you plot, you can do the following:
el = -90:90; az = zeros(1,numel(el)); D = directivity(h,frequency,[az;el],'Weights',w);
You can verify it by plotting it as
plot(el,D)
and compare it to what you get from plotResponse
You can check the version of the toolbox using ver command. If you don't have R2014b, you may need to do some conversions. If you want, I can share a small script with you for this purpose. Alternatively, you can plot it and then retrieve value by obtaining the x and y data of the curve, e.g.
myCurve = plotResponse(h, frequency, propagationSpeed, 'Unit','dbi', ...
'Format', 'Line', 'RespCut', 'El', 'weights', w);
el = get(myCurve,'XData');
D = get(myCurve,'YData');
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related matlab Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →