Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > متفرقه > نرم افزار MATLAB


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۳-۹-۱۳۹۰, ۱۱:۰۸ قبل از ظهر   #1 (لینک دائم)
عضو جدید
 
آواتار tahereh.moeini
 
تاريخ عضويت: خرداد ۱۳۸۹
پست ها: 7
تشكرها: 0
2 تشكر در 2 پست
پيش فرض درخواست کمک برای مقداردهی به یک ماتریس

من می خوام که یه تابع بنویسم که یه ماتریس با ابعاد 3*487183 (t)رو به عنوان ورودی بگیردو هر جایی رو که مقادیر سطر و ستون ورودی(t) مشخص می کنه در یک ماتریس با ابعاد 49290*49290 (e)تبدیل به عدد یک بکنه من کد زیر رو نوشتم اما نمی دونم چرا خطا می ده.

كد:
function
[ e ] = ep(t)
%UNTITLED Summary of this function goes here % Detailed explanation goes here
n=49290; e=zeros(n,n); i=size(t,1);
for
r=1:i m=t(r,1); n=t(r,2); e(m,n)=1;
end end
tahereh.moeini آفلاين است   پاسخ با نقل قول

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online  
قديمي ۰۳-۹-۱۳۹۰, ۰۶:۳۶ بعد از ظهر   #2 (لینک دائم)
عضو فوق فعال
 
آواتار HojjatJafary
 
تاريخ عضويت: فروردين ۱۳۹۰
محل سكونت: Teh
پست ها: 31
تشكرها: 1
29 تشكر در 14 پست
My Mood: Nafaskesh
پيش فرض

با سلام
و عرض ادب

نمی دانم شما این عدد جادویی (49290*49290) را چه طور و از کجا و بر اساس چه معیاری بدست آورده اید ولی اگر کمی به این فکر می کردید که این ماتریس به این بزرگی را در کدام حافظه جای خواهید داد خیلی خوب می شد.

اگر فرض کنیم که هر عنصر ماتریس یک عدد double چهار بایتی است آنگاه مقدار حافظه مورد نیاز شما می شد: 49290*49290 *4 که می شود 9,718,016,400 که در حدود ۹ گیگابایت است.
کامپیوترهای ۳۲ بیتی امروزی بیش از ۴ گیگابایت حافظه رم را نمی توانند پشتیبانی کنند.

موفق و پیروز باشید.

ويرايش شده توسط HojjatJafary; ۰۳-۱۱-۱۳۹۰ در ساعت ۰۱:۱۸ بعد از ظهر دليل: پاک کردن مسائل حاشیه ای
HojjatJafary آفلاين است   پاسخ با نقل قول
قديمي ۰۳-۹-۱۳۹۰, ۰۷:۱۱ بعد از ظهر   #3 (لینک دائم)
عضو فوق فعال
 
آواتار HojjatJafary
 
تاريخ عضويت: فروردين ۱۳۹۰
محل سكونت: Teh
پست ها: 31
تشكرها: 1
29 تشكر در 14 پست
My Mood: Nafaskesh
پيش فرض

فراموش کردم

function [e] = test(A)
n = 4;
B = zeros(n, n);
B(A) = 1;
end
HojjatJafary آفلاين است   پاسخ با نقل قول
قديمي ۰۳-۱۱-۱۳۹۰, ۰۷:۳۷ قبل از ظهر   #4 (لینک دائم)
عضو جدید
 
آواتار tahereh.moeini
 
تاريخ عضويت: خرداد ۱۳۸۹
پست ها: 7
تشكرها: 0
2 تشكر در 2 پست
پيش فرض

آقای جعفری عزیز شما

من یه الگوریتم spectral clustering دارم که مجموعه داده های ورودیش یک ماتریس مربعی باید باشه تا بتونه خوشه هر گره رو تشخیص بده.من مجموعه داده epinion رو دانلود کردم توی این مجموعه داده که یک ماتریس3*487183 در هر سطر مشخص شده هر گره با کدوم گره و با چه مقداری مرتبط است مثلا(45 20 1) نشاندهنده اینکه گره 20 با گره 45 و با مقدار1 ارتباط دارد .حالا من می خواهم این مجموعه داده رو برای استفاده در الگوریتم spectral clustering تبدیل به یک ماتریس مربعی بکنم .تعداد کل گره ها 49290 تا است به همین خاطر ماتریس رو 42290*49290 تا در نظر گرفتم .البته با توجه به ارتباط بین گره ها این ماتریس 49290*49290 یک ماتریس اسپارس به نظر می آید حالا من می خواهم که در این ماتریس در مکان هر گره (که توسط هر سطر مجموعه داده epinion مشخص می شه) عدد 1 رو وارد کنم . کد بالا رو نوشتم و خطایی که می ده (همون خطای کمبود حافظه)بنابراین اگه شما راه حلی می دونید لطفا راهنمایی ام بکنید.
متشکرم
tahereh.moeini آفلاين است   پاسخ با نقل قول
از tahereh.moeini تشكر كرده است:
Astaraki (۰۳-۱۱-۱۳۹۰)
قديمي ۰۳-۱۱-۱۳۹۰, ۰۱:۳۷ بعد از ظهر   #5 (لینک دائم)
عضو فوق فعال
 
آواتار HojjatJafary
 
تاريخ عضويت: فروردين ۱۳۹۰
محل سكونت: Teh
پست ها: 31
تشكرها: 1
29 تشكر در 14 پست
My Mood: Nafaskesh
پيش فرض

با سلام
۱- گرچه من بر عقیده خود در مورد چیزهایی که نوشتم اصرار دارم اما آنها را پاک کردم تا از مسائل حاشیه ای فاصله بگیریم.

۲- برای حل مشکل تان راه های مختلفی وجود دارد. البته من خیلی با این روش خوشه بندی آشنا نیستم چون خودم در ابتدای راه هستم.
ولی اصولا در الگوریتم هایی که نیاز به دسترسی تصادفی به ماتریس مجاورت نداریم از لیست مجاورت استفاده می کنیم که از نظر حافظه بسیار کارا (efficient) است.(البته از ماتریس های خلوت هم می شود استفاده کرد).می توانید چنین لیستی را در متلب ایجاد کنید و همه مراحل الگوریتم را بر اساس همین لیست مجاورت تغییر دهید.
راه دیگر استفاده از زبانهای فوق العاده قدرت مندی مثل c و ++c و فراخوانی توابع نوشته شده در متلب یا اجرای آنها بدون متلب. البته پیاده سازی این راه ها آنقدرها هم سرراست نیست.

پیشنهاد می کنم به ابزارهای آماده زیر که برای کار کردن با مجموعه داده های بزرگ ساخته شده اند نگاهی بیاندازید:

http://alumni.cs.ucsb.edu/~wychen/sc.html
Our tool can handle large data sets (200,000 RCV1 data) on a 4GB memory general machine.

MATLAB spectral clustering package | Download MATLAB spectral clustering package software for free at SourceForge.net
A MATLAB spectral clustering package to handle large data sets (200,000 RCV1 data) on a 4GB memory general machine

Clustering Toolbox
HojjatJafary آفلاين است   پاسخ با نقل قول
پاسخ



كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۷:۵۱ بعد از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

استفاده از مطالب انجمن در سایر سایت ها، تنها با ذکر انجمن هوش مصنوعي به عنوان منبع و لینک مستقیم به خود مطلب مجاز است

Inactive Reminders By Icora Web Design