صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 43 از 43

نام تاپیک: اندازه گیری فاصله دو بردار

  1. #41

    نقل قول: اندازه گیری فاصله دو بردار

    لطفا فایل kmeans اصلی دستکاری نشده را بفرستید

  2. #42

    نقل قول: اندازه گیری فاصله دو بردار

    نحوه استفاده از برنامه ای که در زیر میاد به این صورته:

    rng('default');
    [T1,C1] = Repkmeans(V1, nClass, 'emd', 5);
    rng('default');
    [T2,C2] = Repkmeans(V1, nClass, 'cosine', 5);

    5 تعداد تکرار هست و همین طور که مشاهده می کنید قبل از اجرا هر kmeans مقدار rng را برابر default و یا یک عدد یکسان مثلا 2456 قرار بدید تا شرایط برای همه یکسان باشه همچنین خود متلب هم یک تابع به نام pdist2 داره که انواع و اقسام فاصله ها در اون هست که می تونید در اینجا از نام اونها استفاده کنید

    function [labels , mu]=Repkmeans(data, k, distType,replicates)

    [labels,mu, sumd]= mykmeans(data, k, distType);
    if (replicates > 1)
    for i = 2:replicates
    [labelstemp,mutemp, sumdtemp]= mykmeans(data, k, distType);
    if (sumdtemp < sumd)
    sumd = sumdtemp;
    labels = labelstemp;
    mu = mutemp;
    end
    end
    end
    end
    function [labels,mu, sumd]=mykmeans(data, k, distType)
    data = double(data);
    labels =uint8(zeros(size(data ,1) ,1));
    uniqvals = unique(data,'rows');
    randomindex = randperm(size(uniqvals, 1));
    mu = uniqvals(randomindex(1:k),:);
    mutemp = zeros(size(mu));
    while (true)
    minDistance = pdist3(data , mu(1, :),distType);
    labels(:) = 1;
    for i = 2: k
    tempDistance = pdist3(data , mu(i, :), distType);
    ans1 = minDistance < tempDistance;
    labels = uint8(ans1) .* labels + uint8(~ans1) .* i ;
    minDistance = min (minDistance, tempDistance);
    end
    for i = 1: k
    mutemp(i,:) = mean(data(labels == i, :), 1);
    end
    if (all(mu == mutemp))
    sumd= sum(minDistance(:));
    break;
    end
    mu = mutemp;
    end
    end
    function result = pdist3(X , Y , distType)
    if(distType == 'emd')
    result = distEmd (X , Y);
    else
    result = pdist2(X , Y , distType);
    end
    end

    function D = distEmd( X, Y )

    Xcdf = cumsum(X,2);
    Ycdf = cumsum(Y,2);

    m = size(X,1); n = size(Y,1);
    mOnes = ones(1,m); D = zeros(m,n);
    for i=1:n
    ycdf = Ycdf(i,:);
    ycdfRep = ycdf( mOnes, : );
    D(:,i) = sum(abs(Xcdf - ycdfRep),2);
    end
    end
    آخرین ویرایش به وسیله rahnema1 : چهارشنبه 08 بهمن 1393 در 19:51 عصر

  3. #43

    نقل قول: اندازه گیری فاصله دو بردار

    چند تا اصلاح کردم

صفحه 2 از 2 اولاول 12

تاپیک های مشابه

  1. اندازه گیری فاصله بین دو رویداد کلید توسط stopwatch
    نوشته شده توسط erroric در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 28 آذر 1392, 18:21 عصر
  2. سوال: اندازه گیری فاصله بین فشار دو کلید در C#‎
    نوشته شده توسط erroric در بخش C#‎‎
    پاسخ: 6
    آخرین پست: شنبه 31 فروردین 1392, 16:30 عصر
  3. سوال : اندازه گیری زمان دریافت یک Web Page
    نوشته شده توسط g_jolaei در بخش VB.NET
    پاسخ: 3
    آخرین پست: دوشنبه 19 آبان 1382, 22:19 عصر
  4. اندازه گیری زمان باز شدن یک سایت اینترنتی
    نوشته شده توسط g_jolaei در بخش VB.NET
    پاسخ: 0
    آخرین پست: دوشنبه 12 آبان 1382, 18:26 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •