سئوالات و مشکلات در متلب (MATLAB)

ناآشنا

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

(هادی)

کاربر فعال تالار ریاضی ,
سلام درود بله دیدم اما فقط نحوه ی کار هر تابع رو توضیح داده اضافه کردنش به متلب رو نگفته تا جایی که من جستجو کردم.
سلامتوی همون سایت قسمت دانلود فایلش رو گذاشته برای دانلود. اسم فایل فشرده gplab.toolbox.4.02.zip هست
یک فولدر هست با تعداد زیادی m فایل.
کافیه متلب این فولدر رو بشناسه. ساده ترین راه این هست که فولدر جاری (current folder) رو در محیط متلب، همین فولدر تعریف کنید تا همه کدهای اون رو بشناسه
 

Hadie89

عضو جدید
سلام

آیا در نرم افزار متلب امکانمقایسه رشته ها وجود دارد؟ مثلا دو تا ماتریس یا دو تا سل داشته باشیم که رشتهباشن ینی هم عدد هم حروف بعد بخایم که اینارو با هم مقایسه کنه و اونایی که مساویبودن رو بهمون تو ی ماتریس جدا بده
 

(هادی)

کاربر فعال تالار ریاضی ,
سلام
برای مقایسه رشته ها، متلب دستور strcmp رو از شبیه زبان C تعریف کرده
همچنین عملگر مقایسه ای == هم بعضی وقتها می تونه برای مقایسه رشته ها به کار بره
اگر یک مثال بزنید دقیق تر می تونم جواب بدهم
 

Hadie89

عضو جدید
سلام
برای مقایسه رشته ها، متلب دستور strcmp رو از شبیه زبان C تعریف کرده
همچنین عملگر مقایسه ای == هم بعضی وقتها می تونه برای مقایسه رشته ها به کار بره
اگر یک مثال بزنید دقیق تر می تونم جواب بدهم


سلام

ببینید من دو تا ستون در یک ماتریس دارم که رشته هستند ینی ترکیب عدد و حروف، حالا میخام بیاد شماره اون آرایه هایی که درستون یک دقیقا برابر با یک آرایه در ستون 2 هستند رو بهم بده. ینی همون مقایسه که گفتم
 

(هادی)

کاربر فعال تالار ریاضی ,
سلام

ببینید من دو تا ستون در یک ماتریس دارم که رشته هستند ینی ترکیب عدد و حروف، حالا میخام بیاد شماره اون آرایه هایی که درستون یک دقیقا برابر با یک آرایه در ستون 2 هستند رو بهم بده. ینی همون مقایسه که گفتم

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


a = ['12ab3'; '24re3']; 1
b = ['12ab3';'rrrrr']; 1

این روش برای تعریف بردار رشته یک محدودیت بزرگ داره. اینکه متلب a یا b رو اون طوری که ما میخواهیم نمیفهمه. متلب فکر می کنه ما منظورمون اینه:


a = ['1' '2' 'a' 'b' '3'; '2' '4' 'r' 'e' '3']; 1
b = ['1' '2' 'a' 'b' '3';'r' 'r' 'r' 'r' 'r']; 1

یعنی a و b زو هر کدوم یک ماتریس 2 در 5 می بینه. پس وقتی a رو با b با دستور a==b درایه به درایه مقایسه می کنه، جوابش یک ماتریس 2 در 5 از صفر و یک ها هست:


a==b<<


ans =


1 1 1 1 1
0 0 1 0 0

محدودیت بزرگ این روش اینه که توی هر بردار، طول رشته ها باید ثابت باشه. مثلا من همه رشته ها رو با طول 5 تعریف کردم. وگرنه خطا میده
مقایسه کردنش هم یک کم سخت تره. باید در خروجی ماتریس a==b سطرهایی رو پیدا کنید که تمام درایه هاش برابر یک باشه
all(a==b,2) 1<<


ans =


1
0



اما بهتر اینه که a و b رو cell تعریف کنید. یعنی به جای کروشه از آکولاد استفاده کنید:

a = {'12ab3'; '24re3'}; 1
b = {'12ab3';'rrrrr'}; 1

اون وقت strcmp جواب میده :


strcmp(a,b) 1 <<


ans =


1
0
 

rozhan.mmm

عضو جدید
سلام دوستان من یه راهنمایی میخواستم ممنون میشم راهنمای کنید
برنامه مربوط به این دو فرمول رو میخوام تو متلب بنویسم با توجه به نقاطی که دارم و از این معادله ها میگذره طرز نوشتنشو زیاد بلد نیستم و از برازش منحنی نمیخوام استفاده کنم چون نقاط اولیه رو دارم و میخوام هم یه طوری بتونم تو متلب رگرسیون خطی رو تعریف کنم که بدست بیاد
Y=Y0*e^(-kx)
y=1/(k*x+Y0^(-1))
اگه راهنمایی کنید که کد مربوط به این دو فرمول چطور نوشته میشه و همچنین رگرسیون خطی رو ممنون میشم
 

salar0012

عضو جدید
حل معدلات غیر خطی با مجهولات کمتر

حل معدلات غیر خطی با مجهولات کمتر

سلام دوستان من 5 تا معادله غیرخطی دارم با 2 تا مجهول، میخواستم بدونم چطور با مجهولاتم رو بدست بیارم که کمترین خطا رو داشته باشم؟
از دستور lsqnonlin میخواستم استفاده کنم اما نتونستم کسی میتونه کمک کنه؟
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
بهترین کار اینه که از SVD استفاده کنید.
یه تابع آماده برای این کار توی کتاب من هست. برنامه های کتابم رو می تونید از لینک داخل امضام دانلود کنید. اسم تابعی که شما بعد از دانلود می تونید استفاده کنید SVDSol هستش.
 

ziba 22

کاربر بیش فعال
کاربر ممتاز
سلام
من یک دستگاه معادلات pde دارم.. چجوری میتونم با matlab حلش کنم؟؟
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
سلام
من یک دستگاه معادلات pde دارم.. چجوری میتونم با matlab حلش کنم؟؟
این چند تا کار رو انجام بدید:
1. اسامی متغیرهای وابسته رو چیزهای معقولی در نظر بگیرید که بشه با معادله ها ارتباط ریاضی برقرار کرد؛ مثلاً می تونی از متغیرهای y1 و y2 و ... استفاده کنید.
2. شرایط اولیه و شرایط مرزی مسأله رو مشخص کنید.
3. بعد از کارهای بالا، راهنمای pdepe متلب رو مطالعه کنید، ببینید دستگاه معادلات شما قابل بیان به صورت مسأله هایی که با این دستور حل می شن هستش یا نه.
4. اگر در مرحله قبل دیدید که مسأله شما قابل حل با pdepe هست، با استفاده از اون حلش کنید. اما اگر قابل حل با دستور pdepe نبود، ساده ترین راه اینه که معادله ها رو در بعد مکان گسسته سازی کنید و با استفاده از دستور ode15s متلب حلش کنید.
 

ziba 22

کاربر بیش فعال
کاربر ممتاز
این چند تا کار رو انجام بدید:
1. اسامی متغیرهای وابسته رو چیزهای معقولی در نظر بگیرید که بشه با معادله ها ارتباط ریاضی برقرار کرد؛ مثلاً می تونی از متغیرهای y1 و y2 و ... استفاده کنید.
2. شرایط اولیه و شرایط مرزی مسأله رو مشخص کنید.
3. بعد از کارهای بالا، راهنمای pdepe متلب رو مطالعه کنید، ببینید دستگاه معادلات شما قابل بیان به صورت مسأله هایی که با این دستور حل می شن هستش یا نه.
4. اگر در مرحله قبل دیدید که مسأله شما قابل حل با pdepe هست، با استفاده از اون حلش کنید. اما اگر قابل حل با دستور pdepe نبود، ساده ترین راه اینه که معادله ها رو در بعد مکان گسسته سازی کنید و با استفاده از دستور ode15s متلب حلش کنید.

سلام.. باشه
خیلی ممنون از راهنمایی
 

mitra*

کاربر بیش فعال
کاربر ممتاز
سلام وقتتون بخیر.

من پارامتر u که سیگنال کنترل کننده ام است.
باید در رابطه dx2=Vx+u استفاده بشه ولی چون تاخیر داره انتگرال گیرم ارور میده که dx2 به صورت پارامتری تولید میشه! میخوام u با چند ثانیه تاخیر وارد معادله بشه. امکانش هست؟ میشه لطفا کمکم کنین.
ممنونم.
 

mitra*

کاربر بیش فعال
کاربر ممتاز
سلام دوستان.
من یه فانکشن نوشتم
function [dWa,dWb,PH]= fcn(Fb,Wa,Wb)
....
end
وقتی ران میکنم ارور میده و متوجه نمیشم چرا!!!
خطای تولید شده اینه!
Output argument 'PH' is not assigned on some execution paths.

ولی وقتی میام توی برنامه یه مقداری به
ph
میدم برنامه کار میکنه!!!
این ارور چیه کسی میتونه کمکم کنه؟
 

mitra*

کاربر بیش فعال
کاربر ممتاز
خودم پیدا کردم میگم اگه برا دوستان هم مشکلی این مدل پیش اومد حل کنن.
من یه حلقه در فانکشنم داشتم که باعث میشد این ارور رو داشته باشم.فقط قبل از حلقه یک مقدار
PH=0
دادم و مشکلم حل شد.
 

mitra*

کاربر بیش فعال
کاربر ممتاز
سلام
دوستان نت نیست سرچ کنم کلا دیوونه شدم.
میشه لطفا بگین من چطوری این دستور رو بنویسم
یه ورودی دارم با N=2000 داده
یه خروجی دارم با 1200 داده.
میخوام همبستگی بین ورودی و خروجی رو حساب کنم.رابطه اش هست.

NNN.jpg
نمیدونم چطور کد متلبشو بنویسم لطفا کمک کنین:cry::cry:
 

yas87

کاربر حرفه ای
کاربر ممتاز
سلام
دوستان نت نیست سرچ کنم کلا دیوونه شدم.
میشه لطفا بگین من چطوری این دستور رو بنویسم
یه ورودی دارم با N=2000 داده
یه خروجی دارم با 1200 داده.
میخوام همبستگی بین ورودی و خروجی رو حساب کنم.رابطه اش هست.

مشاهده پیوست 264981
نمیدونم چطور کد متلبشو بنویسم لطفا کمک کنین:cry::cry:

عزیز با parsijoo.ir میتونی سرچ کنی ، یکسری ها رو درست باز میکنه .
 

Similar threads

بالا