رفتن به مطلب

تاپیک رفع اشکال و بحث پیرامون یادگیری متلب در تابستان 92


M!Zare

ارسال های توصیه شده

با سلام

دوستان برای من تو قسمت 6 خیلی سوال ایجاد شد میشه کمکم کنین؟؟

 

سوال 1 : workspace با command history چه فرقی داره؟؟

سوال 2 : brush کردن با Ctrl+select چه فرقی داره لطفن توضیح بدین متوجه نشدم؟؟

سوال 3 : تو متلب 2013 به جای variable editor خود variable میاد با همون کارایی آیا variable editor جدا از همین پنجره هس؟؟

سوال 4 : منظور و مفهوم گزینه arrange document چی هس بازم لطفن توضیح..

سوال 5 : من متغییری رو تو پنجره variable x تغییر دادم ولی وقتی تو commend history رویه همون متغییر گزینه evaluatرو زدم مقدار جدید ظاهر نشد، چرا؟؟؟

درود....

1- workspace یا فضای کار در حقیقت یک فضای موقت برای انجام عملیات هست و با پاک کردن، کل عملیات و داده ها پاک می شود. اما در command history یک حافظه است که از ابتدای نوشتن برنامه تمامی عملیات رو همراه با تاریخ در خود ذخیره می کند.

2- brush که برای انتخاب چند داده استفاده میشه...Ctrl+select کجا بود؟

3- 2013 ندارم. میشه تصویرش رو قرار بدید؟

4- نحوه چیدمان چند پنجره رو در کنار هم نشون میده...

5-hanghead.gif

 

امیدوارم دوستان دیگه پاسخ کامل تر یدن

  • Like 3
لینک به دیدگاه
  • پاسخ 119
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

با سلام

دوستان برای من تو قسمت 6 خیلی سوال ایجاد شد میشه کمکم کنین؟؟

 

سوال 1 : workspace با command history چه فرقی داره؟؟

سوال 2 : brush کردن با Ctrl+select چه فرقی داره لطفن توضیح بدین متوجه نشدم؟؟

سوال 3 : تو متلب 2013 به جای variable editor خود variable میاد با همون کارایی آیا variable editor جدا از همین پنجره هس؟؟

سوال 4 : منظور و مفهوم گزینه arrange document چی هس بازم لطفن توضیح..

سوال 5 : من متغییری رو تو پنجره variable x تغییر دادم ولی وقتی تو commend history رویه همون متغییر گزینه evaluatرو زدم مقدار جدید ظاهر نشد، چرا؟؟؟

 

جسارته...اجازه میخوام من جواب بدم:

 

1- پنجره command histori تمام عملیاتی رو که انجام میدی (یا به عبارت دیگه هر بار که اینتر میزنی) رو تو خودش ضبط میکنه. تو این پنجره هیچی آپدیت نمیشه و با هر بار اینتر زدن همینطور به انتهای اون اضافه میشه. اما پنجره workplace هر متغیر یا مقدار جدیدی رو یک بار مینویسه و اگر احیانا وسطای برنامه مقدار متغیری تغییر کنه، تو این پنجره مقدار جدید جایگزین مقدار قبلی میشه و در واقع این پنجره آپدیت میشه. هر دو این پنجره ها ضروری هستن. اولی برای اینکه دقیقا بدونی چه مراحلی رو طی کردی و دومی برای مقدار هر متغیر در زمان کنونی رو بفهمی.

 

2- وقتی با دکمه کنترل سلول ها رو انتخاب میکنی در واقع کار خاصی نمیتونی رو سلول های انتخاب شده انجام بدی. احتمالا به جز کپی و پیست کردن. اما وقتی با ابزار براش سلول ها رو انتخاب میکنی با کلیک راست کردن میتونی ابزارای زیادی رو استفاده کنی. مثلا میتونی با سلول های انتخاب شده یه متغیر جدید بسازی. در صورتی که این کار بدون ابزار براش یه مقدار مشکله و چند مرحله رو باید طی کنی. اینم بگم که ابزار براش تو متلب 2013 مثل نسخه 2009 نیست. بعد از اینکه پنجره متغیر (variable) رو باز کردی با کلیک راست میتونی گزینه brushing رو ببینی. بعد از منوی همین گزینه باید brush on رو انتخاب کنیو تازه قلمو رو بهت میده.

 

3- تفاوت خاصی ندارن.

 

4- اگر بخوای چند متغیر رو کنار هم ببینی یا دوس داری جای پنجره های فعال رو طبق میل خودت عوض کنی میتونی ازش استفاده کنی. چیز مهمی نیست که بخوای نگرانش باشی. به مرور میفهمی کجاها به درد میخوره.

 

5- جواب این سوال رو هم میتونی تو حرفای قبلیم پیدا کنی. فرض کن متغیری رو برابر 2 تعریف کردی. حالا هم تو پنجره history مقدارش رو 2 نشون میده و هم تو پنجره workplace. حالا اگه مقدار جدیدی برای همون متغیر تعریف کنی یه سطر دیگه به پنجره history اضافه میشه، ولی تو پنجره workplace مقدار متغیر آپدیت میشه. حالا برگردیم به پنجره history. اگه روی عملیات اولمون دابل کلیک کنی مقدار متغیر دوباره مثل حالت اول میشه و تو پنجره workplace هم مقدار دوباره عوض میشه و یه سطر دیگه به history اضافه میشه. منظورم اینه که هر دستوری تو پنجره history مقدار مششخصی رو تو خودش ذخیره کرده. وقتی یه دستوری از history رو اجرا میکنی، مقداری که تو اون دستور برای متغیر خاصی تعریف شده دو باره تو همون متغیر قرار میگیره. نمیدونم تونستم برسونم یا نه .....

  • Like 4
لینک به دیدگاه
درود....

1- workspace یا فضای کار در حقیقت یک فضای موقت برای انجام عملیات هست و با پاک کردن، کل عملیات و داده ها پاک می شود. اما در command history یک حافظه است که از ابتدای نوشتن برنامه تمامی عملیات رو همراه با تاریخ در خود ذخیره می کند.

2- brush که برای انتخاب چند داده استفاده میشه...Ctrl+select کجا بود؟

3- 2013 ندارم. میشه تصویرش رو قرار بدید؟

4- نحوه چیدمان چند پنجره رو در کنار هم نشون میده...

5-hanghead.gif

 

امیدوارم دوستان دیگه پاسخ کامل تر یدن

 

ممنون از کمکتون

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 3
لینک به دیدگاه
جسارته...اجازه میخوام من جواب بدم:

 

1- پنجره command histori تمام عملیاتی رو که انجام میدی (یا به عبارت دیگه هر بار که اینتر میزنی) رو تو خودش ضبط میکنه. تو این پنجره هیچی آپدیت نمیشه و با هر بار اینتر زدن همینطور به انتهای اون اضافه میشه. اما پنجره workplace هر متغیر یا مقدار جدیدی رو یک بار مینویسه و اگر احیانا وسطای برنامه مقدار متغیری تغییر کنه، تو این پنجره مقدار جدید جایگزین مقدار قبلی میشه و در واقع این پنجره آپدیت میشه. هر دو این پنجره ها ضروری هستن. اولی برای اینکه دقیقا بدونی چه مراحلی رو طی کردی و دومی برای مقدار هر متغیر در زمان کنونی رو بفهمی.

 

2- وقتی با دکمه کنترل سلول ها رو انتخاب میکنی در واقع کار خاصی نمیتونی رو سلول های انتخاب شده انجام بدی. احتمالا به جز کپی و پیست کردن. اما وقتی با ابزار براش سلول ها رو انتخاب میکنی با کلیک راست کردن میتونی ابزارای زیادی رو استفاده کنی. مثلا میتونی با سلول های انتخاب شده یه متغیر جدید بسازی. در صورتی که این کار بدون ابزار براش یه مقدار مشکله و چند مرحله رو باید طی کنی. اینم بگم که ابزار براش تو متلب 2013 مثل نسخه 2009 نیست. بعد از اینکه پنجره متغیر (variable) رو باز کردی با کلیک راست میتونی گزینه brushing رو ببینی. بعد از منوی همین گزینه باید brush on رو انتخاب کنیو تازه قلمو رو بهت میده.

 

3- تفاوت خاصی ندارن.

 

4- اگر بخوای چند متغیر رو کنار هم ببینی یا دوس داری جای پنجره های فعال رو طبق میل خودت عوض کنی میتونی ازش استفاده کنی. چیز مهمی نیست که بخوای نگرانش باشی. به مرور میفهمی کجاها به درد میخوره.

 

5- جواب این سوال رو هم میتونی تو حرفای قبلیم پیدا کنی. فرض کن متغیری رو برابر 2 تعریف کردی. حالا هم تو پنجره history مقدارش رو 2 نشون میده و هم تو پنجره workplace. حالا اگه مقدار جدیدی برای همون متغیر تعریف کنی یه سطر دیگه به پنجره history اضافه میشه، ولی تو پنجره workplace مقدار متغیر آپدیت میشه. حالا برگردیم به پنجره history. اگه روی عملیات اولمون دابل کلیک کنی مقدار متغیر دوباره مثل حالت اول میشه و تو پنجره workplace هم مقدار دوباره عوض میشه و یه سطر دیگه به history اضافه میشه. منظورم اینه که هر دستوری تو پنجره history مقدار مششخصی رو تو خودش ذخیره کرده. وقتی یه دستوری از history رو اجرا میکنی، مقداری که تو اون دستور برای متغیر خاصی تعریف شده دو باره تو همون متغیر قرار میگیره. نمیدونم تونستم برسونم یا نه .....

 

واقعن ممنون خیلی عالی بود فقط این آخریه یکم مشکل موند که از کجا بدونیم تغییری که تو variable دادیم چی بود و کدوم..

و 2 تا سوال دیگه هم داشتم :icon_redface:

1 - تو متلب فقط اعداد طبیعی تعریف شدن یا اونیکی ها هم هستن

2 - تو اشتراک سطر و سوتون آیا به جز روش گفته شده ( انتخاب یک در میان ستون ها) روش دیگه ای هم واسه انتخاب کردن هس؟؟؟؟

بازم ممنون

  • Like 3
لینک به دیدگاه
واقعن ممنون خیلی عالی بود فقط این آخریه یکم مشکل موند که از کجا بدونیم تغییری که تو variable دادیم چی بود و کدوم..

و 2 تا سوال دیگه هم داشتم :icon_redface:

1 - تو متلب فقط اعداد طبیعی تعریف شدن یا اونیکی ها هم هستن

2 - تو اشتراک سطر و سوتون آیا به جز روش گفته شده ( انتخاب یک در میان ستون ها) روش دیگه ای هم واسه انتخاب کردن هس؟؟؟؟

بازم ممنون

 

خواهش میکنم :icon_gol::icon_gol::icon_gol:

فک میکنم آخریه رو نتونستم خوب بگم. یکم پیچیده شد :icon_pf (34):

شما هر تغییری که میخوای تو متغیر بدی رو باید تو قسمت Workplace اعمال کنی و کار رو ادامه بدی. فرض کن این دستورات رو تو متلب بنویسی و هر بار اینتر هم بزنی:

a=1

a=2

a=3

a=4

حالا تو قسمت history چهار تا عملیات با مقادیر مختلف a ثبت شده. ولی تو پنجره Workplace فقط a=4 رو میبینی. مقدار فعلی متغیر همونیه که Workplace نشون میده. حالا فرض کن دوس داری مقدار a رو برگردونی به 3 . میتونی تو history روی a=3 دوبار کلیک کنی. حالا اگه دقت کنی تو پنجره Workplace هم مقدار a به 3 تغییر پیدا میکنه. رابطه این دو تا پنجره به این صورتیه که گفتم. history تمام عملیات ها رو ذخیره میکنه. ولی Workplace فقط نتایج نهایی رو نشون میده.

 

1- والا دقیقا منظورت از اونیکی رو متوجه نشدم. ولی تا جاییکه میدونم با همه جور عدد میتونی کار کنی

 

2- انتخاب یک در میان لفظ اشتباهیه که مخاطبو به اشتباه میندازه. شما بین اون دو تا دو نقطه میتونی فاصله بین سطر ها رو بنویسی. اگه دو باشه فاصله بین سطرها 2 تا میشه. مثلا سطرهای اول، سوم، پنجم و ... که خود به خود یک در میون حساب میشه. حالا اگه اینجوری بنویسی :

 

3:4:12

 

یعنی از سطر سوم شروع کن و با فاصله 4 تا 4 تا برو به سطر دوازدهم. یعنی سطرهای : 3,7,11

 

اگر بازم نتونستم منظورمو برسونم میبخشی :icon_gol:

  • Like 5
لینک به دیدگاه
خواهش میکنم :icon_gol::icon_gol::icon_gol:

فک میکنم آخریه رو نتونستم خوب بگم. یکم پیچیده شد :icon_pf (34):

شما هر تغییری که میخوای تو متغیر بدی رو باید تو قسمت Workplace اعمال کنی و کار رو ادامه بدی. فرض کن این دستورات رو تو متلب بنویسی و هر بار اینتر هم بزنی:

a=1

a=2

a=3

a=4

حالا تو قسمت history چهار تا عملیات با مقادیر مختلف a ثبت شده. ولی تو پنجره Workplace فقط a=4 رو میبینی. مقدار فعلی متغیر همونیه که Workplace نشون میده. حالا فرض کن دوس داری مقدار a رو برگردونی به 3 . میتونی تو history روی a=3 دوبار کلیک کنی. حالا اگه دقت کنی تو پنجره Workplace هم مقدار a به 3 تغییر پیدا میکنه. رابطه این دو تا پنجره به این صورتیه که گفتم. history تمام عملیات ها رو ذخیره میکنه. ولی Workplace فقط نتایج نهایی رو نشون میده.

 

1- والا دقیقا منظورت از اونیکی رو متوجه نشدم. ولی تا جاییکه میدونم با همه جور عدد میتونی کار کنی

 

2- انتخاب یک در میان لفظ اشتباهیه که مخاطبو به اشتباه میندازه. شما بین اون دو تا دو نقطه میتونی فاصله بین سطر ها رو بنویسی. اگه دو باشه فاصله بین سطرها 2 تا میشه. مثلا سطرهای اول، سوم، پنجم و ... که خود به خود یک در میون حساب میشه. حالا اگه اینجوری بنویسی :

 

3:4:12

 

یعنی از سطر سوم شروع کن و با فاصله 4 تا 4 تا برو به سطر دوازدهم. یعنی سطرهای : 3,7,11

 

اگر بازم نتونستم منظورمو برسونم میبخشی :icon_gol:

 

منظورم اعداد منفی اینا هس که میشه تو دستورا استفاده کرد؟

نه خیلی هم عالی منظورتونو میرسونین یکم شاید سوال من گنگ بود ولی در کل ممنون

  • Like 3
لینک به دیدگاه
منظورم اعداد منفی اینا هس که میشه تو دستورا استفاده کرد؟

نه خیلی هم عالی منظورتونو میرسونین یکم شاید سوال من گنگ بود ولی در کل ممنون

 

بله هست. اگه منظورتون تعریف متغیر منفیه که خیلی راحت انجام میشه :icon_gol:

 

خواهش میکنم :icon_redface:

  • Like 2
لینک به دیدگاه

یکی‌ بیاد به من توضیح بده که از نرم افزار مطلب دقیقا چه استفاده‌هایی‌ می‌شه

 

 

مثلا چه برنامه‌هایی‌ می‌شه باش نوشت

 

دیگه اینکه می‌شه باش پول داروورد آیا؟:ws3:

 

 

سوالی جهت پیام بازرگانی:ws3:

  • Like 4
لینک به دیدگاه

انگار سوالام زیاد شدش:icon_redface:معذرت والا من اولین بارمه دارم با متلب کار میکنم واسه همین سوال خیلی واسم پیش میاد:sigh::5c6ipag2mnshmsf5ju3

  • Like 4
لینک به دیدگاه
انگار سوالام زیاد شدش:icon_redface:معذرت والا من اولین بارمه دارم با متلب کار میکنم واسه همین سوال خیلی واسم پیش میاد:sigh::5c6ipag2mnshmsf5ju3

 

نه عزیز. اصلا اینطور نیست. اتفاقا هر چی بیشتر بپرسی بهتره. منم اولین بارمه متلب میخونم. هر وقت هر جا هر سوالی پیش اومد حتی خیلی ابتدایی، حتما بپرسید. دوستان متخصص اینجا زیادن. جواب میدن با هم یاد میگیریم.

سوال پیش میاد باید بپرسی‌ دیگه

 

پرسیدن عیب نیست ندانستن عیب است:ws3:

 

 

 

یکی بیاد جواب منو بده:whistle:

 

باریکلا اشکان جون. حرف درستی زدی :w02:

 

والا جواب سوالتو من در حدی نیستم که بدم. ولی تا جایی که میدونم مستقیما نمیشه از متلب پول درآورد. ولی اگه با چیزای دیگه ترکیب بشه میشه درآمد خوبی باهاش درآورد. مثلا یه زبان دیگه مثل c هم بلد باشی که بتونی برنامه های متنوعی بنویسی. یا مثلا تو کارای رباتیک برای خیلی از محاسبات میشه ازش استفاده کرد و خیلی کاربردای دیگه. بسیاری از مسائل رو تو همه رشته ها میشه با متلب شبیه سازی کرد. اینا گوشه ای از استفاده های متلب هستن. مطمئن باش یاد گرفتنش ضرر نداره :a030:

  • Like 7
لینک به دیدگاه
  • 2 هفته بعد...

یک نکته یاد گرفتمhapydancsmil.gif

clc پنجره command window رو پاک میکنه، اما clear متغیرهای پنجره workspace رو پاک میکنه:ws3:

  • Like 5
لینک به دیدگاه

سلام

 

ممنون بابت زحماتتون

 

یه سوال

فرق "و" و "یا" چیه؟!؟!؟!؟!

 

 

ی سوال دیگه

 

در دستور disp فرق ' ' و () چیه؟!؟!؟

  • Like 5
لینک به دیدگاه
  • 2 هفته بعد...

سلام

 

کسی نیست جواب بده!؟؟!! :4564:

 

چند تا سوال دیگه

 

در دستور diag نمیشه ب صورت سطری جابه جا کرد؟!؟!؟! این دستوری که نوشته فقط به صورت ستونی جابه جا می کنه!!!!

 

در مورد درس 22 و میانگین

 

برنامم اینه

function [average] = avg(x)

%tabe miangiri az adad.

%x yek mahdude az adad ast.

n = length(x);

average = sum(x)/n;

 

 

 

 

end

 

ولی ارور می ده! میگه x رو تعریف نکردی!!!!

تو برنامه هم تعریف نکرده بود!:whistle:

چه جوری میشه تعریفش کرد؟!؟!!؟:5c6ipag2mnshmsf5ju3

 

ممنون:ws3:

 

شرمنده ما صواتمون کمه!!!!!! شما ببخشین!!!!

 

 

جریان ارورو متوجه شدم!!!

 

باید به صورت

 

avg([1 4 5 8])

 

می نوشتم که الان صحیح شد!!

 

جهت اطلاع دوستان پست حذف نمی کنم! شاید به همچین مشکلی برخورده باشند (هر چند بعیده)!!!

  • Like 5
لینک به دیدگاه
  • 1 ماه بعد...
  • 2 ماه بعد...

با سلام

من با دستور solve تو متلب دوتا مشکل دارم!

مشکل اول: باید حتما تابع را به طور کامل در دستور solve بنویسی با یه مثال ساده بخوام توضیح بدم:

solve('2*x+1')

این برنامه جواب میده ولی اگه y=2*x+1 رو قبلا تعریف کرده باشیم نمیشه برنامه رو به صورت زیر بنویسیم:

syms x,y=2*x+1,

solve('y=0','x')

اینطوری جواب نمیده! راهی نیست که بشه یه تابع از قبل تعریف شده رو در دستور solve فراخوانی کنیم؟

مشکل دوم: اگه از قبل به یه متغیری عدد نسبت داده باشیم بعد از اون متغیر در دستور solve استفاده کنیم متوجه نمیشه! برای مثال:

a=2;

solve('a*x+1','x')

من انتظار دارم جواب منفیه 1/2 بهم بده ولی منفیه 1/a رو میده! راهی هست برای رفع این مشکل؟

البته مسئله ی من به این سادگی نیست خواستم با یه مثال ساده توضیح بدم واضح باشه!

ممنون میشم اگه راهنماییم کنید

  • Like 3
لینک به دیدگاه
با سلام

من با دستور solve تو متلب دوتا مشکل دارم!

مشکل اول: باید حتما تابع را به طور کامل در دستور solve بنویسی با یه مثال ساده بخوام توضیح بدم:

solve('2*x+1')

این برنامه جواب میده ولی اگه y=2*x+1 رو قبلا تعریف کرده باشیم نمیشه برنامه رو به صورت زیر بنویسیم:

syms x,y=2*x+1,

solve('y=0','x')

اینطوری جواب نمیده! راهی نیست که بشه یه تابع از قبل تعریف شده رو در دستور solve فراخوانی کنیم؟

مشکل دوم: اگه از قبل به یه متغیری عدد نسبت داده باشیم بعد از اون متغیر در دستور solve استفاده کنیم متوجه نمیشه! برای مثال:

a=2;

solve('a*x+1','x')

من انتظار دارم جواب منفیه 1/2 بهم بده ولی منفیه 1/a رو میده! راهی هست برای رفع این مشکل؟

البته مسئله ی من به این سادگی نیست خواستم با یه مثال ساده توضیح بدم واضح باشه!

ممنون میشم اگه راهنماییم کنید

 

 

سلام:icon_gol:

 

برای مشکل اول لازم نیست که دستور رو اینطوری بنویسین:

solve('y=0','x')

بنویسن

syms x,y=2*x+1

solve(y)

 

برای مشکل دوم هم تابع تون رو مثل بالا تعریف کنید یعنی:

 

a=2

syms x,y=a*x+1

solve(y)

اینطوری جوابتون درست در میاد:a030:

 

 

 

  • Like 3
لینک به دیدگاه
سلام:icon_gol:

 

برای مشکل اول لازم نیست که دستور رو اینطوری بنویسین:

solve('y=0','x')

بنویسن

syms x,y=2*x+1

solve(y)

 

برای مشکل دوم هم تابع تون رو مثل بالا تعریف کنید یعنی:

 

a=2

syms x,y=a*x+1

solve(y)

اینطوری جوابتون درست در میاد:a030:

 

 

 

 

سلام

متشکرم از راهنمایی مفیدتون

موفق باشید :icon_gol: :icon_gol:

  • Like 1
لینک به دیدگاه

×
×
  • اضافه کردن...