جمعه, ۱ آذر ۱۳۹۸، ۱۲:۴۹ ب.ظ
تابع نرمالایزر normalVect
یکی از توابعی که دو سال پیش توسعه دادم، تابع normalVect، این تابع بسیاری کاربردی، یک ماتریس یک بعدی یا یک بردار را دریافت می کنه و مقادیر اون را به شکل پیش فرض بین 0 و 1 مپینگ( توزیع به زبان سادهتر) میکنه و اگر بازه را مشخص کنید بردار یا ماتریس را به همان بازه مپینگ می کنه. سه نمونه از کد فراخوانی تابع را در بالای اون تعبیه کردم ، که می تونید از داخل کنسول متلب یا داخل توابع یا اسکریپت ها او را فراخوانی کنید.
% give a vector or matrix for normalizing between tow number or 0 and 1
% vect=normalVect([1,-2,4,1,11,4,5])
% vect=normalVect([1,-2,4,1,11,4,5],-2,1)
% vect=normalVect([1,-2,4;11,4,5])
function vect=normalVect(varargin)
if nargin==0
msgbox('give a 1 argoment atleast');
vect=[];
elseif ~isnumeric(varargin{1})
msgbox('abnormal argoment');
vect=[];
else
vect=varargin{1};
if nargin==1
vect=(vect-min(vect(:)))./(max(vect(:))-min(vect(:)));
elseif nargin==3 || nargin>3
if varargin{2}~=varargin{3}
vect=(vect-min(vect(:)))./(max(vect(:))-min(vect(:)));
vMin=min([varargin{2},varargin{3}]);
vMax=max([varargin{2},varargin{3}]);
vDif=vMax-vMin;
vect=(vect*vDif)+vMin;
if nargin>3
msgbox('we used 3 argoment only');
end
else
vect=(vect-min(vect(:)))./(max(vect(:))-min(vect(:)));
msgbox('abnormal limits: normaled 0: 1');
end
end
end
end
۹۸/۰۹/۰۱