شبیه‌سازی شبکه‌های بی سیم و کامپیوتری
شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا
  • شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا

مشخصات بلاگ
شبیه‌سازی شبکه‌های بی سیم و کامپیوتری

امکان سفارش، شبیه سازی مقاله و پایان نامه وجود دارد،
مطالب، با ذکر منبع قابل انتشار در سایت ها و وبلاگ ها و.. می باشد.
جهت دریافت مشاوره رایگان تماس بگیرید:

شماره تماس: 09147082079-0098
آیدی تلگرامی:https://t.me/MuosSA_NbO
جی میل :mo30no@gmail.com

تمامی کدهای این وبلاگ در حال حاضر به زبان متلب می باشد

«آنچه می‌دانیم ناچیز و آنچه نمی‌دانیم عظیم و وسیع است»
$$پیر سیمون لاپلاس$$

۱۸ مطلب در آذر ۱۳۹۸ ثبت شده است

جمعه, ۱ آذر ۱۳۹۸، ۰۱:۱۸ ب.ظ

تابع گروه‌بند بردار groupLable

دلیل اصلی نوشتن این تابع، این بود که گاهی وقت‌ها لازم می شد که یک برداری از نظر تعداد تکرار عناصر،طول عناصر بدون تکرار و اندیس(موقعیت) تکرار عناصر مشخص بشه، که در متلب چنین تابعی نبود، اگر هم باشه من اطلاع ندارم، البته توابعی مثل intersect و ismember خروجی مشابهی دارند ولی این توابع  موقع مقایسه دو بردار می تونند چنین خروجی‌هایی را بدهند.

function [groupN,grValue,grReap,grindexList]=groupLable(trainLable )
if size(trainLable,1)>1
     trainLable=trainLable'; 
end
trainLable1=trainLable;
 
groupN=0;
while(~isempty(trainLable1))
    groupN=groupN+1;

    gr=(trainLable1==trainLable1(1));
    groupCluster(groupN).reap=sum(gr);
    groupCluster(groupN).grValue=trainLable1(1);


    trainLable1=trainLable1(~gr);
end
grValue=([groupCluster.grValue]);
grReap=([groupCluster.reap]);
grindexList=[];
for grL=grValue
   grindexList(end+1).grI=  (grL==trainLable).*(1:length(trainLable));
   grindexList(end).grI(grindexList(end).grI==0)= [];

end

end

 

نمونه خروجی و نحوه فراخوانی این تابع در تصویر زیر قابل مشاهده است:

 

 

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ آذر ۹۸ ، ۱۳:۱۸
موسی حسن زاده
جمعه, ۱ آذر ۱۳۹۸، ۱۲:۴۹ ب.ظ

تابع نرمالایزر 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

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ آذر ۹۸ ، ۱۲:۴۹
موسی حسن زاده