آموزش نرم افزار متلب

behzadk2019

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

سلام
ببنید مهندس شما اول باید کل بازهاتون رو بنویسد و بعد از تمامی بازه ها میاید تابع ها رو مینویسد ( بازها پشت سر هم و تابع ها پشت سر هم )
بعد میاید از دستور plot استفاده می کنید به این صورت
( plot(x,y,d,z,e,r

در اینجا من x,d,e رو بازه در نظر گرفتم
و y,z,r رو تابع در نظر گرفتم

بعد در یک نمودار نمایش داده میشن هر سه تابع
 

ali-gold

کاربر فعال
سلام
ببنید مهندس شما اول باید کل بازهاتون رو بنویسد و بعد از تمامی بازه ها میاید تابع ها رو مینویسد ( بازها پشت سر هم و تابع ها پشت سر هم )
بعد میاید از دستور plot استفاده می کنید به این صورت
( plot(x,y,d,z,e,r

در اینجا من x,d,e رو بازه در نظر گرفتم
و y,z,r رو تابع در نظر گرفتم

بعد در یک نمودار نمایش داده میشن هر سه تابع

سلام ممنون
چرا در آرگومان Plot ترتیب توابع و بازه ها رعایت نشد؟قانون خاصی داره؟
 

behzadk2019

کاربر فعال تالار مهندسی مکانیک
کاربر ممتاز
سلام ممنون
چرا در آرگومان Plot ترتیب توابع و بازه ها رعایت نشد؟قانون خاصی داره؟

خواهش میکنم
ببنید دوستم من چیزی که از متلب متوجه شدم این قاعده رو داره که بعد از هربازه ای باید تابعی قرار بدید .
فکر کنم قاعده ای هست که در نرم افزار گنجانده شده و باید از این روش استفاده کنیم
 

pedarkhande2

عضو جدید
با سلام خدمت دوستان عزیز
میخواستم ببینم کسی میتونه راجب به انتقال حرارت یک بعدی در استوانه و کره با کد نویسی متلب کمکم کنه.؟
1- شرایط مرزی دو طرف جداره ها ره ثابت فرض کنید.
2- ضخامت استوانه 2 میلی متر شعاع داخلیش 300 میلیمتره و ضخامت کره هم 6 میلیمتره و شعاع داخلیش هم 220 میلیمتره
3- انتقال حرارت یک بعدی و فقط در جهت شعاعی است.
من خودم که برنامه نویسیش کردم دماهام منفی در میان:confused:
اگه کسی کد نوشتشو داره یا میتونه کمک کنه ممنون می شم.
سلام
وارون ماتریس مجهولات رو چک کنین
کد برنامتون رو برام میل کنین
من کد انتقال حرارت شبکه بندی قطبی رو دارم (خودم نوشتم ی مقدار محدودیت داره)
 

smr-khp

عضو جدید
سلام. لطفا زود جواب بدین.
من برنامه متلبی که نوشتم، movie که در نهایت با فرمت avi ذخیره میشه، وقتی میزنم یه لحظه باز میشه ولی زود بسته میشه. مشکلش چیه؟در صورتی که برنامم مشکلی نداره.
 

meytim

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

صورت پرسش در حقیقت اینه: نمودار تغییرات یک تابع چند ضابطه ای رو چطور تو متلب بکشیم؟
جواب: روش زیاد هست؛ یکی از روشهای ساده برای تازه کارهای متلب اینه که اول تابع رو تعریف کنید. بعد با استفاده از حلقه for یک تابع جدولی درست کنید. بعد با استفاده از تابع plot نمودار تغییرات مورد نظر رو بکشید.
یه نمونه همراه با خروجیش پیوست کردم.

تابع سه ضابطه ای:
کد:
function y = smpl4plt(x)
if x<1
    y = x^3;
elseif x<3
    y = x;
else
    y = -x^2 + 8*x - 12;
end

برنامه اصلی:
کد:
% main_smpl4plt
x = -2:0.1:5;
n = length(x);
y = zeros(1,n);
for k = 1:n
    y(k) = smpl4plt(x(k));
end


plot(x,y)
xlabel('x'), ylabel('y')
set(gca,'XTick',[-2,1,3,5],'YTick',[1,3])
axis([-2,5,-8,4.4])
grid

نمودار پس از اجرای برنامه اصلی:
smpl4plt.JPG
 

ali-gold

کاربر فعال
صورت پرسش در حقیقت اینه: نمودار تغییرات یک تابع چند ضابطه ای رو چطور تو متلب بکشیم؟
جواب: روش زیاد هست؛ یکی از روشهای ساده برای تازه کارهای متلب اینه که اول تابع رو تعریف کنید. بعد با استفاده از حلقه for یک تابع جدولی درست کنید. بعد با استفاده از تابع plot نمودار تغییرات مورد نظر رو بکشید.
یه نمونه همراه با خروجیش پیوست کردم.

تابع سه ضابطه ای:
کد:
function y = smpl4plt(x)
if x<1
    y = x^3;
elseif x<3
    y = x;
else
    y = -x^2 + 8*x - 12;
end

برنامه اصلی:
کد:
% main_smpl4plt
x = -2:0.1:5;
n = length(x);
y = zeros(1,n);
for k = 1:n
    y(k) = smpl4plt(x(k));
end


plot(x,y)
xlabel('x'), ylabel('y')
set(gca,'XTick',[-2,1,3,5],'YTick',[1,3])
axis([-2,5,-8,4.4])
grid

نمودار پس از اجرای برنامه اصلی:
مشاهده پیوست 212149

سلام...واقعا ممنون...ولی در مورد دو خط زیر هم کمی توضیح میدین که چکار کردین و یعنی چی؟

کد:
n = length(x);
y = zeros(1,n);

ممنون با تشکر
 

jojo.ss

عضو جدید
سلام
میشه بگیداین چندخط کدچیکارمیکنه؟


image_files=dir(fullfile(cd,'\*.JPG'));
current_directory=cd;
dimension=size(image_files);
number_of_samples=dimension(1);
Q=1;
while (Q<=number_of_samples)

if Q>=2
Q=1;
end

file_name=image_files(Q).name;
file=strcat(current_directory,'\',file_name);
 

ali-gold

کاربر فعال
سلام...
میخوام یه خط دستور رو در متلب غیر فعال کنم باید چکار کنم؟ممنون با تشکر
 

amir-sky

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

سلام...کد سختی نبود،یه خورده وقت گذاشتم و درست شد،اصلا هم نیاز به روش خاصی و انجام گزاره شرطی هم نبود...
تایع X^3 و sinx و cosx رو در بازه های مختلف رسم کردم و نمودارش هم به شرح زیر هست..نکتش فقط نوشتن Hold on هست.بفرمایید:

کد:
>> x=0:0.00001:1;
y=x.^3;
plot(x,y,'b')
hold on
 x=1:0.00001:2;
w=sin(x);
plot(x,w,'r')
hold on
x=2:0.00001:3;
z=cos(x);
 plot(x,z,'g')

دقیقا همینو داخل پنجره Comman window کپی و پیست نمایید.




سلام...
میخوام یه خط دستور رو در متلب غیر فعال کنم باید چکار کنم؟ممنون با تشکر

در ابتدای هر دستور که میخواین غیرفعال شه شیفت رو نگه دارید و کلید 5 رو بزنین.

یاعلی
 

ali-gold

کاربر فعال
سلام...کد سختی نبود،یه خورده وقت گذاشتم و درست شد،اصلا هم نیاز به روش خاصی و انجام گزاره شرطی هم نبود...
تایع X^3 و sinx و cosx رو در بازه های مختلف رسم کردم و نمودارش هم به شرح زیر هست..نکتش فقط نوشتن Hold on هست.بفرمایید:

کد:
>> x=0:0.00001:1;
y=x.^3;
plot(x,y,'b')
hold on
 x=1:0.00001:2;
w=sin(x);
plot(x,w,'r')
hold on
x=2:0.00001:3;
z=cos(x);
 plot(x,z,'g')

دقیقا همینو داخل پنجره Comman window کپی و پیست نمایید.






در ابتدای هر دستور که میخواین غیرفعال شه شیفت رو نگه دارید و کلید 5 رو بزنین.

یاعلی

واقعا دمت گرم عالی بود:)ممنون
 

ali---gh

عضو جدید
سلام....تاپیک عالیه من درد حد توان همکاری میکنم.
از همه دوستان تقاضا میکنم برای بهتر شدنش تلاش کنن....
 

m.sabri

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

amir-sky

کاربر حرفه ای
کاربر ممتاز
سلام و وقت بخیر خدمت مهندسین عزیز:
لطفا منو در زمینه یادگیری متلب (به صورت کامل)راهنمایی کنید... راستش من بلدم یک برنامه متلبو تا حدودی بنویسم...منظورم اینه که با علامت ها و دکمه های درون این نرم افزار آشنایی دارم... ولی بیشتر مشکل من روی نوشتن الگوریتم اولیه است...چطور نوشتن الگورتیمو به صورت حرفه ای یاد بگیرم؟؟؟
با تشکر

سلام...
روش خاصی وجود نداره و زیاد نترسین...کلا کدنویسی نمیگم آسونه ولی زیادم سخت نیست.
راهکارها:
مطالعه منبع آموزشی خوب و تمرین و تکرار...
و نکته ای که مهمه فهمیدن فیزیک مساله ای که میخوای کدشو بنویسی هست.
و یاد گرفتن تمامی دستورها که هر دستور چکار میکنه.
 

rostamani

عضو جدید
سلام من میخوام یه ماتریس (3*5000) بسازم که در ستون اول داده ها به صورت رندم و عدد صحیح بین (30-9) ستون دوم بین (100-20) و ستون سوم بین (700-140) باشه .داده های هر ستون تکراری نباشه و داده های یک سطر هم به طور کامل با سطر دیگه ای مشابه نباشه.میشه کمکم کنید و بگید چیکار کنم.دستور rand عدد اعشاری تولید می کنه که نمی خوام اعشاری باشه .
 

yaser8az

عضو جدید
سلام
دیگه نمیشه فایل ها رو دانلود کرد
من الان 20 تا رو دارم و خوندم اما الان دیگه نمیشه کلا دانلود کرد
مسئولین رسیدگی کنند
 

galix

عضو جدید
سلام.خیلی ممنون ازآموزشتون لطفا ادامشو هم بذارید.متشکرم.:smile:
 

رضا حق شناس

عضو جدید
سلام و خسته نباشید به اساتید بزرگوار

میخواستم ببینم با چه دستوری میشه از یک دستگاه معادلات مشخص، ضرایب مجهول های مد نظر رو ریخت داخل یک ماتریس؟
یعنی مثلا یک دستگاه دو معادله دو مجهولی به متلب بدیم
ازش بخواهیم که ماتریس ضرایب رو تشکیل بده تا بتونیم از اون ماتریس دترمینان بگیریم.
دستگاه معادلات من بسیار بزرگه و از حل دو انتگرال بدست میاد. بنابر این نمیشه ماتریس ضرایب رو به طور دستی ایجاد کرد و باید حتما این کار به صورت اتوماتیک انجام بشه
ممنون و متشکرم
 

amir_4883

عضو جدید
lمدل دینامیک حرارتی خانه در سیمولینک متلب

lمدل دینامیک حرارتی خانه در سیمولینک متلب

سلام من میخوام مدل دینامیک حرارتی یه خونه رو تو سیمولینک متلب کار کنم اون نمونه خود متلبم دیدم اما زیاد سردر نیورودم کسی میتونه کمکم کنه ممنون
 

رضاافشاری

عضو جدید
کسی میدونه واسه دو تا داده مختلف چطور میشه legend رو آورد رو نمودار؟!
مثلا
hold on
x=[0,0.05,0.1
T=[80,25.0646,20.7106
plot(x,T,'ro',x,T,'r
x2=[0,0.025,0.05,0.075,0.1
T2=[80,38.6619,24.7647, 20.4710, 20.2634
plot(x2,T2,'ko',x2,T2,'k
hold off
متاسفانه فقط یکی میمونه نمیدونم چرا؟
 

nazliii

مدیر مهندسی برق مخابرات - متخصص نیمه هادی
کسی میدونه واسه دو تا داده مختلف چطور میشه legend رو آورد رو نمودار؟!
مثلا
hold on
x=[0,0.05,0.1
T=[80,25.0646,20.7106
plot(x,T,'ro',x,T,'r
x2=[0,0.025,0.05,0.075,0.1
T2=[80,38.6619,24.7647, 20.4710, 20.2634
plot(x2,T2,'ko',x2,T2,'k
hold off
متاسفانه فقط یکی میمونه نمیدونم چرا؟

به این صورت:

x = -pi:pi/20:pi
;plot(x,cos(x),'-ro',x,sin(x),'-.b')
h = legend('cos','sin',2);
 

رضاافشاری

عضو جدید
فرض کنید ماتریس زیر رو داریم:
U=[X , 7*X
و میخوایم مقادیر زیر رو براش بدیم:
X1=[1 2
X2=[2 3
چطور میشه با برنامه ساده این کار رو انجام داد؟
 

mina mekanik

عضو جدید
بچه ها من این کد رو برای نشون دادن خطوط اطراف استوانه چرخان نوشتم.ولی اجرا نمیشه.میشه کمکم کنین
x=0:0.01:pi;
y=pi:0.01:2*pi;
s=0:1:3;r=roots(s);s=-r.*sin(x)+sim(x)./r-log(r)./2.*pi;
polar(x,r1);
hold on;
polar(y,r1);
hold on;
polar(x,r2);
hold on;
polar(y,r2);
hold on;
polar(x,r3);
hold on;
polar(x,r4);
 

nazliii

مدیر مهندسی برق مخابرات - متخصص نیمه هادی
بچه ها من این کد رو برای نشون دادن خطوط اطراف استوانه چرخان نوشتم.ولی اجرا نمیشه.میشه کمکم کنین
x=0:0.01:pi;
y=pi:0.01:2*pi;
s=0:1:3;r=roots(s);s=-r.*sin(x)+sim(x)./r-log(r)./2.*pi;
polar(x,r1);
hold on;
polar(y,r1);
hold on;
polar(x,r2);
hold on;
polar(y,r2);
hold on;
polar(x,r3);
hold on;
polar(x,r4);

r1,r2,r3,r4 معلوم نیست .اگر منظورت همون ریشه های s هست باید از for استفاده کنی
خطای دیگه هم اینکه باید تو خط سوم دستورت این طوری باشه( نقطه قبل ضرب حذف بشه)
s=-r*sin(x)+sim(x)./r-log(r)./2.*pi;
 

mina mekanik

عضو جدید
بچه ها اینجوری هم نوشتم بازم نشد.کمکم کنین

x=0:0.01:pi;
y=pi:0.01:2*pi;

s1=.5;find roots(s1=-r1*sin(x)+sim(x)./r1-log(r1)./2.*pi);
s2=0;find roots(s2=-r2*sin(x)+sim(x)./r2-log(r2)./2.*pi);
s3=.75;find roots(s3=-r3*sin(x)+sim(x)./r3-log(r3)./2.*pi);
s4=1;find roots(s4=-r4*sin(x)+sim(x)./r4-log(r4)./2.*pi);
polar(x,r1);
hold on;
polar(y,r11);
hold on;
polar(x,r2);
hold on;
polar(y,r2);
hold on;
polar(x,r3);
hold on;
polar(x,r4);
 

alireza2022

عضو جدید
سلام
دوستان کسی در مورد الگوریتم عمکرد تابع fsolve در متلب چیزی میدونه؟
 

nafas..

عضو جدید
...

...

سلام برای برنامه نویسی یه تابع نیاز به m-file.function هست اماm-fileمتلب من بر حسب script.چطور میتونم فایل function پیدا کنم؟؟؟
 

engineer elham

عضو جدید
سلام
کسی میتونه این برنامه رو بنویسه خیلی بهش احتیاج دارم کمک کمک کمک
تابعی بنام (lusolve (a,b بنویسید که توسط ان دستگاه معادلات خطی ax=b به ازای هر a ,b دلخواه n*n با استفده از lu حل شود ؟؟؟
 

reza2495

عضو جدید
سلام. بچه ها کسی میدونه یه دستگاه معادلات دیفرانسیل را چطوره میشه تو متلب با 0de45 حل کرد؟ من میتونم دستگاها باز کنم و معادلات حالت را یکی یکی در بیارم و کدشو بنویسم . اما میخوام ماتریسی حلش کنم. مثلا یه سیستم جرم و فنر ساده : Mx''+kx=0 ک ماتریس های جرم و سختی 2تا ماتریس 3*3 و معلوم هستند.
ممنونم میشم اگه کسی میدونه راهنماییم کنه
 
بالا