View Full Version : مشکل در ضرب
Reza,M
یک شنبه 25 آبان 1393, 13:32 عصر
با سلام
چطور بردار A رو در ماتریس B ضرب کنم که جواب آنها == 1011010 بشه
A=1011
B=1000111
0100101
0010110
0001011
rahnema1
یک شنبه 25 آبان 1393, 16:33 عصر
A=[1,0,1,1];
B=[1,0,0,0,1,1,1;
0,1,0,0,1,0,1;
0,0,1,0,1,1,0;
0,0,0,1,0,1,1];
~all(bsxfun(@or, B, A'), 1)
Reza,M
یک شنبه 25 آبان 1393, 21:44 عصر
حالا میخوام خروجی رو در تکس باکس داشته باشم اما خطا میده
v=~all(bsxfun(@or, b, b'), 1)
set(handles.txt_V,'String',v)
اینم خطاش :
Error using set
error: mxArray must be double, char, or cell
Error in EX_1>btn_1_Callback (line 187)
set(handles.txt_V,'String',v);
rahnema1
یک شنبه 25 آبان 1393, 22:06 عصر
این را بذارید
sprintf('%d', v)
coronaa
یک شنبه 25 آبان 1393, 22:14 عصر
A=[1,0,1,1];
B=[1,0,0,0,1,1,1;
0,1,0,0,1,0,1;
0,0,1,0,1,1,0;
0,0,0,1,0,1,1];
~all(bsxfun(@or, B, A'), 1)
ببخشید که وارد بحث شما شدم :)
یعنی چی که جواب 1011010 بشه؟
مگه میشه دو بردار که اعدادش رو داریم طوری ضرب کنیم که یه جواب دیگه ای بدست بیاد؟
rahnema1
یک شنبه 25 آبان 1393, 22:19 عصر
ببخشید که وارد بحث شما شدم :)
یعنی چی که جواب 1011010 بشه؟
مگه میشه دو بردار که اعدادش رو داریم طوری ضرب کنیم که یه جواب دیگه ای بدست بیاد؟
احتمالا منظورش ضرب نبوده. یعنی عملیاتی مابین این دو انجام بشه که جواب مورد نظر را بده
بهتره در صورت تمایل خودشون بگن به چه درد می خوره
coronaa
یک شنبه 25 آبان 1393, 22:25 عصر
احتمالا ضرب جبری نمیخواسته و ضرب بولین منظورش بوده. مثل گیت AND توی مدارات منطقی!
حالا میشه توضیح بدین اون خط آخری که نوشتین چیکار میکنه؟
Reza,M
یک شنبه 25 آبان 1393, 23:59 عصر
نه اتفاقا منظورم ضرب بوده یعنی برا حالات دیگه هم باید درست جواب بده اون که اول گفتم یک نمونه بود
Reza,M
دوشنبه 26 آبان 1393, 00:27 صبح
مثلا یه نمونه دیگه :
چطور بردار X رو در ماتریس Y ضرب کنم که جواب آنها == 111 بشه
X=0011010
Y=111
101
110
011
100
010
001
===============
فک کنم XOR میشن
coronaa
دوشنبه 26 آبان 1393, 08:45 صبح
نه اتفاقا منظورم ضرب بوده یعنی برا حالات دیگه هم باید درست جواب بده اون که اول گفتم یک نمونه بود
درسته. ضرب هست ولی ضرب بولین. همونطوری که پست قبلیم گفتم.
Reza,M
دوشنبه 26 آبان 1393, 09:06 صبح
مثلا یه نمونه دیگه :
چطور بردار X رو در ماتریس Y ضرب کنم که جواب آنها == 111 بشه
X=0011010
Y=111
101
110
011
100
010
001
===============
فک کنم XOR میشن
حالا اینو به چه صورت ضرب کنم؟؟
فکر کنم باید بصورت X ضرب در 'Y باشه
coronaa
دوشنبه 26 آبان 1393, 09:23 صبح
با اجازه ی rahnema1 عزیز،
بدین صورت میشه :
X=[0 0 1 1 0 1 0];
Y=[1 1 1; 1 0 1;1 1 0; 0 1 1; 1 0 0; 0 1 0; 0 0 1 ];
~all(bsxfun(@xor, Y, X'), 1)
rahnema1
دوشنبه 26 آبان 1393, 10:33 صبح
حالا میشه توضیح بدین اون خط آخری که نوشتین چیکار میکنه؟
A را با تک تک ستونهای B مورد عملیات OR قرار می دهیم سپس در جواب ایجاد شده برای هر ستون اگر ستونی تمام اعضایش 1 بود نشانه 1 میذاریم در غیر اینصورت نشانه 0 میذاریم که 7 تا نشانه درست میشه از اینها not می گیریم و جواب بدست میاد
rahnema1
دوشنبه 26 آبان 1393, 10:35 صبح
X=[0,0,1,1,0,1,0];
Y=[1,1,1;
1,0,1;
1,1,0;
0,1,1;
1,0,0;
0,1,0;
0,0,1];
~all(bsxfun(@or, Y, X'), 1)
اینجوری با فرمول قبلی هم سازگاره
Reza,M
دوشنبه 26 آبان 1393, 13:34 عصر
دوستان نتیجه در حالات بعدی درست در نمیاد
مثلا
X=[1 1 0 1 0 1 0];
Y=[1 1 0; 0 1 1; 1 0 1; 1 1 1; 1 0 0; 0 1 0; 0 0 1 ];
باید بشه 000 که بازم میشه 111
rahnema1
دوشنبه 26 آبان 1393, 19:57 عصر
ببینید اینجور نمیشه به صورت معمایی بگیم چی میشه باید ببینید چه اصولی را دنبال می کنید و بر اساس اون عمل کنید
اگر بخواهید رمز بشکنید روشهای خاص خودش را داره
samadblaj
سه شنبه 25 آذر 1393, 21:53 عصر
سلام؛
میشه خواهش کنم سورس یکی از چهار عمل اصلی را برام قرار بدید؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.