how to normalize output for plotting

조회 수: 3 (최근 30일)
neil whitesell
neil whitesell 2020년 12월 2일
댓글: neil whitesell 2020년 12월 4일
hello, i need to figure out how to normalize the putput thats getting plotted (largest value being one, rest scaled etc.)
i'm sure there's a function for it, but the few i have tried i dont have on my matlab (things like normc() etc)
here is code, and i'll include some output as well. the variable named "normalizedvector" does in fact seem to be normalized, but i cannot get it to plot correctly
i am trying to plot the radiation pattern of a dipole, and what gets spit out dosent seem correct
clc
clear
close all
addpath c:\antennas\ewa
beta=12.5664; %
eta=377;
l=.68;
a=.00002;
ker='a';
basis='d';
d=.001;
e=2.7128 %math constant
E=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
output = pfield(l,a,E,ker,basis)
R=100 %meter
theta=0
d=.001683
f=1
A=zeros(1,101);
%differing vertical distance
for theta=0:.15708:pi %.01745
for k=1:1:101
A(k)=0
end
for k=1:1:101 %i have 101 slices
k;
cur=abs(output(k)); %grabs abs current at certain iteration
x=R-d*cos(theta); %defines changing distnce to point
Efield=(((1i*beta*eta*cur))/(4*pi*R))*e^((-1i)*beta*x)*e^(1i*beta*d)*sin(theta);
A(k)=abs(Efield)
A
%theta=theta+tand(d);
d=.001683+(.003366*(k-1)); %this sets the first distance half a sample up, then one slice distance up thereafter
end
%o=sum(A)
normalizedvector = (A- min(A)) / (max(A)-min(A));
o=sum(A)
%S=sum(normalizedvector,'all')
l=sum(normalizedvector(f))
%l=normalizedvector(f);
polarplot(theta,o,'*');
hold on
f=f+1;
A
normalizedvector
end
hold off
normalizedvector =
Columns 1 through 15
0 0.0425 0.0849 0.1270 0.1690 0.2106 0.2518 0.2926 0.3328 0.3724 0.4114 0.4496 0.4870 0.5235 0.5591
Columns 16 through 30
0.5937 0.6272 0.6596 0.6909 0.7208 0.7495 0.7769 0.8028 0.8273 0.8504 0.8719 0.8918 0.9102 0.9269 0.9419
Columns 31 through 45
0.9553 0.9670 0.9769 0.9851 0.9915 0.9961 0.9989 1.0000 0.9993 0.9967 0.9924 0.9863 0.9785 0.9688 0.9575
Columns 46 through 60
0.9444 0.9296 0.9131 0.8950 0.8752 0.8539 0.8752 0.8950 0.9131 0.9296 0.9444 0.9575 0.9688 0.9785 0.9863
Columns 61 through 75
0.9924 0.9967 0.9993 1.0000 0.9989 0.9961 0.9915 0.9851 0.9769 0.9670 0.9553 0.9419 0.9269 0.9102 0.8918
Columns 76 through 90
0.8719 0.8504 0.8273 0.8028 0.7769 0.7495 0.7208 0.6909 0.6596 0.6272 0.5937 0.5591 0.5235 0.4870 0.4496
Columns 91 through 101
0.4114 0.3724 0.3328 0.2926 0.2518 0.2106 0.1690 0.1270 0.0849 0.0425 0

채택된 답변

VBBV
VBBV 2020년 12월 2일
o=A./sum(A)
%S=sum(normalizedvector,'all')
%l=sum(normalizedvector(f))
%l=normalizedvector(f);
polarplot(theta,o,'*');
Normalize o relative to A vector in your loop
  댓글 수: 6
VBBV
VBBV 2020년 12월 4일
Can you share the snapshot of the two plots before and after multiplying pi/180 ?
neil whitesell
neil whitesell 2020년 12월 4일
firstone is what you originally gave me, it miiiiight be correct but has strange numbers like .01 and such under plot, mgiht be too low.
the secind one is after applying the pi/180

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Formatting and Annotation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by