دلیل اصلی نوشتن این تابع، این بود که گاهی وقت‌ها لازم می شد که یک برداری از نظر تعداد تکرار عناصر،طول عناصر بدون تکرار و اندیس(موقعیت) تکرار عناصر مشخص بشه، که در متلب چنین تابعی نبود، اگر هم باشه من اطلاع ندارم، البته توابعی مثل 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

 

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

 

 

 

 


مشخصات

آخرین مطالب این وبلاگ

آخرین ارسال ها

آخرین جستجو ها