PDA

View Full Version : یه سوال دارم لطفا راهنماییم کنید



91ghazalak
سه شنبه 26 شهریور 1392, 19:58 عصر
با سلام
من یک مجموعه تصادفی دارم و یک ماتریس,اگر بخوام اعضایی از این مجموعه که جزو درایه های ماتریس نیستنو پیدا کنم از چه دستوری میتونم استفاده کنم؟
اگر راهنماییم کنید خیلی ممنون میشم

amin1136
پنج شنبه 28 شهریور 1392, 13:58 عصر
با سلام
من یک مجموعه تصادفی دارم و یک ماتریس,اگر بخوام اعضایی از این مجموعه که جزو درایه های ماتریس نیستنو پیدا کنم از چه دستوری میتونم استفاده کنم؟
اگر راهنماییم کنید خیلی ممنون میشم

ببین این مثال مال اشتراک 2 تا مجموعست حالا ایده بگیر برای یه مجموعه و یه ماتریس بنویسش:


clc
clear
a=input('enter your set 1 as Matrix[1*n]: ')
b=input('enter your set 2 as Matrix[1*m]: ')
[n,m]=size(a);
[k,l]=size(b);
p=1;
for i=1:m
for j=1:l
if a(1,i)==b(1,j)
h(1,p)=a(1,i);
p=p+1;
else
h(1,p)=0;

end

end
end
y=1;

for z=1:p-1
if h(1,z)~=0
e(1,y)=h(1,z);
y=y+1;
end
end
e

ASedJavad
شنبه 30 شهریور 1392, 07:04 صبح
سلام
نه اینکه بخوام بگم روش amin1136 اشتباهه؛ که روش ایشون روش پایه ایه برا یه همچین کاری! و اگه قرار بود این کار رو با زبان دیگه ای انجام میدادی، حتما باید از همین روش استفاده میکردی.
اما ویژگی متلب اینه که هر چیزی که راجه بهش فکر کنی، قبلا سازندگانش راجع به اون فکر کردن و یه تابع براش تهیه دیدن.
(احتمالا تو ورژنای بعدی متلب یه تابع گنجونده میشه که موضوع رو به متلب میدی، خودش برات یه پایان نامه تهیه میکنه و چندتا مقاله آی اس آی و علمی پژوهشی و کنفرانسی و ... هم بهت میده!)

بگذریم.
ساختار متلب برا کار با ماتریسها بهینه شده. یعنی برای دست یافتن به بهترین سرعت، باید دیتاها رو برد تو حوزه ماتریسی و اونجا روشون عملیات انجام داد. نه اینکه با چند تا for تودرتو از حوزه ماتریسی اورد تو حوزه اسکالر و روشون عملیات کرد!
باز هم بگدریم.

تابع ismember دقیقا همون کاری رو میکنه که شما میخواین: چک میکنه اعضای ماتریس A تو ماتریس B هستن یا نه.
تو لینک زیر قشنگ توضیح داده:
چک کردن عضو بودن تمامی عناصر یک ماتریس در ماتریسی دیگر با دستور ismember (http://www.kelidestan.com/matlab/matlab-77.php)

درضمن لطفا برا مطالبتون از عنوان های مناسب استفاده کنید وگرنه ممکنه مدیرا پستتون رو حذف کنند!

amin1136
یک شنبه 31 شهریور 1392, 23:33 عصر
تشکر از راهنماییتون... البته چون من با زبانهای دیگر برنامه نویسی کار کردم اینطور مفهومی نوشتم... درسته تابع شما رو هم به کار بردم خوب بود.