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

ali_pishtaz

عضو جدید
نرم افزارتون تولباس ریاضیش فعال نیست یه ورژن جدیدتر (2011) نصب کنین درست میشه

سلام.
لطفا سوالتون رو چند جا مطرح نكنيد دوست عزيز http://www.www.www.iran-eng.ir/images/smilies/icon_gol.gif

فايل نصبي شما ناقصه. يك سورس ديگه رو امتحان كنيد

شما یا جعبه ابزار محاسبات نمادین (Symbolic Toolbox) رو نصب نکردید، یا نرم افزار 64 بیتی رو روی سیستم 32 بیتی (یا برعکس) نصب کردید.

سلام آقایان و خانمان

ممنون میشم یه خورده در مورد symbolic toolbax توضیح بدین؟منظورتون چیه؟چرا موقع نصب متلب این تولباکس نصب نشد؟


ممنون که که راهنمایی کردین:من سیستمم 64 بیتی هست ولی متلب 32 بیتی!!

میرم متلب 2013 رو نصب میکنم.ولی این سوال منو هم برای این که اطلاعاتم بالا بره جواب بدین ممنون میشم....

با تشکر
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
سلام آقایان و خانمان

ممنون میشم یه خورده در مورد symbolic toolbax توضیح بدین؟منظورتون چیه؟چرا موقع نصب متلب این تولباکس نصب نشد؟


ممنون که که راهنمایی کردین:من سیستمم 64 بیتی هست ولی متلب 32 بیتی!!

میرم متلب 2013 رو نصب میکنم.ولی این سوال منو هم برای این که اطلاعاتم بالا بره جواب بدین ممنون میشم....

با تشکر

اگر با پیغام خطایی مشابه پیغام زیر برحورد کردید
Undefined function or method 'syms' for input arguments > of type 'char'.
باید با هنگام نصب مجدد متلب گزینه مربوط به Symbolic Math Toolbox را همانطور که در شکل نشان داده شده است علامت بزنید.

دقت کنید که حین نصب برنامه به جای انتخاب گزینه typical، گزینه custom را انتخاب کنید تا بتوانید از نصب موارد دلخواه خود مطمئن شوید.




با نصب این تولباکس در استفاده از دستور SYMS مشکلی نحواهید داشت.

بعد از اینکه مراحل نصب تمام شد برای اینکه از نصب تولباس های مورد نظر هود مطمئن شوید در پنجره دستور متلب عبارت ver را تایپ کنید تا تمام جزئیات و اطلاعات متلب و سیمولینک لیست شود.
مثلا در این لیست خواهیم داشت:
Symbolic Math Toolbox Version 5.3 (R2009b)
این تولباکس از نسخه 2009b به بعد برای ویندوز های 64 بیتی قرارا گرفته است ودر نسحه های قبل از آن تنها برای 32 بیتی ها قابل استفاده بود.

منبــــــــــع
 

sanijoon

کاربر فعال تالار مقالات ,
کاربر ممتاز
با سلام :gol:

دوستانی که متلب 2013 رو نصب دارن میخواستم بپرسم نسبت به متلب 2012 چه تولباکس هایی بهش اضافه شده؟اصلا تولباکس جدیدی بهش اضافه شده؟و همینطور 2012 نسبت به 2011؟
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار

ali_pishtaz

عضو جدید

اگر با پیغام خطایی مشابه پیغام زیر برحورد کردید
Undefined function or method 'syms' for input arguments > of type 'char'.
باید با هنگام نصب مجدد متلب گزینه مربوط به Symbolic Math Toolbox را همانطور که در شکل نشان داده شده است علامت بزنید.

دقت کنید که حین نصب برنامه به جای انتخاب گزینه typical، گزینه custom را انتخاب کنید تا بتوانید از نصب موارد دلخواه خود مطمئن شوید.




با نصب این تولباکس در استفاده از دستور SYMS مشکلی نحواهید داشت.

بعد از اینکه مراحل نصب تمام شد برای اینکه از نصب تولباس های مورد نظر هود مطمئن شوید در پنجره دستور متلب عبارت ver را تایپ کنید تا تمام جزئیات و اطلاعات متلب و سیمولینک لیست شود.
مثلا در این لیست خواهیم داشت:
Symbolic Math Toolbox Version 5.3 (R2009b)
این تولباکس از نسخه 2009b به بعد برای ویندوز های 64 بیتی قرارا گرفته است ودر نسحه های قبل از آن تنها برای 32 بیتی ها قابل استفاده بود.

منبــــــــــع

سلام دوست عزیز

متلب 2013 رو نصب کردم،و مشکل حل شد ولی فقط وقتی تایپ میکنم حروف خیلی ریز تایپ میشه.باید چکار کنم؟

در ضمن وقتی نرم افزار برای اجرا دابل کلیک میکنم ابتدا برای دو ثانیه یه صفحه سیاه رنگ میاد و میره و نرم افزار بالا میاد.چرا اینطوریه؟؟؟

ممنون میشم راهنمایی بفرمایید.

یاعلی
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
سلام دوست عزیز

متلب 2013 رو نصب کردم،و مشکل حل شد ولی فقط وقتی تایپ میکنم حروف خیلی ریز تایپ میشه.باید چکار کنم؟

در ضمن وقتی نرم افزار برای اجرا دابل کلیک میکنم ابتدا برای دو ثانیه یه صفحه سیاه رنگ میاد و میره و نرم افزار بالا میاد.چرا اینطوریه؟؟؟

ممنون میشم راهنمایی بفرمایید.

یاعلی

سلام
در مورد سوال اولتون :
از تب home گزینه Preferences انتخاب کنید (یا داخل command window بنویسید preferences) از پنجره باز شده، از کادر سمت چپ Font انتخاب کنید، عدد کادر آخر رو تغییر بدین.

در مورد سوال دومتون هم احتمالا یک مشکل گرافیکی دارید .. ولی برای من تا حالا این مشکل پیش نیومده و اطلاعات خاصی ندارم ..


 

amir ghasemiyan

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

متلب 2013 رو نصب کردم،و مشکل حل شد ولی فقط وقتی تایپ میکنم حروف خیلی ریز تایپ میشه.باید چکار کنم؟

در ضمن وقتی نرم افزار برای اجرا دابل کلیک میکنم ابتدا برای دو ثانیه یه صفحه سیاه رنگ میاد و میره و نرم افزار بالا میاد.چرا اینطوریه؟؟؟

ممنون میشم راهنمایی بفرمایید.

یاعلی

سلام
سوال اولتون رو كه آقا پوريا جواب داد
سوال دومتون هم بايد بگم كه قبل از اجراي نرم افزار يك فايل اجرا ميشه كه تحت داس هست. براي همين پنجره cmd بالا مياد و شما فكر ميكنين يك صفحه سياه هست.
 

robotnic

عضو جدید
سلام دوستان ... من اين برنامه رو که می نويسم نمودار رسم شده شکست داره ... بايد چيکار کنم ؟

X=.0:1:5
y=atan((2.*x)./ (1-x.^2))
y1=atan((2.*.375.*x)./ (1-x.^2))
y2=atan((2.*.15.*x)./ (1-x.^2))
y3=atan((2.*.05.*x)./ (1-x.^2))
y4=atan((2.*.1.*x)./(1-x.^2))
plot(x,y,x,y1,x,y2,x,y3,x,y4)
grid on
 

niknamshahr

عضو جدید
نوشتن برنامه

نوشتن برنامه

سلام/یه سوالی دارم خیلی ممنون میشم کمکم کنین. برنامه ای بنویسین که به کمک آن بتوان معادله لاپلاس را با روش تفاضلهای منتهایی حل کرد؟
رشته من عمرانه ولی استاد برنامه نویسیمون این سوالو داده من اصلا علاقه ای به برنامه نویسی ندارم ولی میدونم تو امتحانش میاد تو رو خدا اگه کسی میتونه حلش کنه کمکم کنه
 

sanijoon

کاربر فعال تالار مقالات ,
کاربر ممتاز
سلام دوستان ... من اين برنامه رو که می نويسم نمودار رسم شده شکست داره ... بايد چيکار کنم ؟

X=.0:1:5
y=atan((2.*x)./ (1-x.^2))
y1=atan((2.*.375.*x)./ (1-x.^2))
y2=atan((2.*.15.*x)./ (1-x.^2))
y3=atan((2.*.05.*x)./ (1-x.^2))
y4=atan((2.*.1.*x)./(1-x.^2))
plot(x,y,x,y1,x,y2,x,y3,x,y4)
grid on
شما میخای نمودار چجوری رسم بشه؟
 

asal persian

عضو جدید
saving many figure

saving many figure

سلام دوستان

من توی برنامه ام که رسم ۴۳۰ نمودار هست میخوام که نمودارام با دستور saveas به صورتPDF ذخیره بشن. من این دستور رو تو یه حلقه قرار دادم (' saveas(gcf,'figure(i)','pdf ولی کلا یا ذخیره نمیشه وخطا میده یا فقط اولین نمودار ذخیره میشه. مشکل نوشتن آرکمان دستور رو میشه برام حل کنید؟


ممنون:redface:
 
آخرین ویرایش:

sadegh1068

عضو جدید
سلام دوستان ... من اين برنامه رو که می نويسم نمودار رسم شده شکست داره ... بايد چيکار کنم ؟

x=.0:1:5
y=atan((2.*x)./ (1-x.^2))
y1=atan((2.*.375.*x)./ (1-x.^2))
y2=atan((2.*.15.*x)./ (1-x.^2))
y3=atan((2.*.05.*x)./ (1-x.^2))
y4=atan((2.*.1.*x)./(1-x.^2))
plot(x,y,x,y1,x,y2,x,y3,x,y4)
grid on

سلام
دوست عزیز بخاطر اینه که تقسیم بندیتون در جهت X کمه.
برای درست نشون دادن نمودار باید x رو به تعداد زیاد تری تقسیم کنید.
یعنی به جای x=.0:1:5 که در کد شما هست بنویسید x=.0:0.01:5

موفق باشید
 

Fathy

متخصص مهندسی سازه و زلزله
سلام دوستان ... من اين برنامه رو که می نويسم نمودار رسم شده شکست داره ... بايد چيکار کنم ؟

X=.0:1:5
y=atan((2.*x)./ (1-x.^2))
y1=atan((2.*.375.*x)./ (1-x.^2))
y2=atan((2.*.15.*x)./ (1-x.^2))
y3=atan((2.*.05.*x)./ (1-x.^2))
y4=atan((2.*.1.*x)./(1-x.^2))
plot(x,y,x,y1,x,y2,x,y3,x,y4)
grid on

سلام
گام های x رو کم کن. مثلا به جای خط اول بنویس:
x=.0:0.01:5
 

sfakor

عضو جدید
سلام منم یه مشکل مشاه داشتم، هر چی دنبال راه حل رفتم پیداش نکردم، به نظر من بیخیالش بشی و وقتت رو حروم نکنی
به دلیل اینکه ایندکس توی متلب تعریف نشده است و نمیتونی بهش حال کنی که ایندکسا رو یکی یکی توی کدت ببره جلو تا اسم فایلا باهم قاطی نشه

سلام دوستان

من توی برنامه ام که رسم ۴۳۰ نمودار هست میخوام که نمودارام با دستور saveas به صورتPDF ذخیره بشن. من این دستور رو تو یه حلقه قرار دادم (' saveas(gcf,'figure(i)','pdf ولی کلا یا ذخیره نمیشه وخطا میده یا فقط اولین نمودار ذخیره میشه. مشکل نوشتن آرکمان دستور رو میشه برام حل کنید؟


ممنون:redface:
 

Fathy

متخصص مهندسی سازه و زلزله
سلام دوستان

من توی برنامه ام که رسم ۴۳۰ نمودار هست میخوام که نمودارام با دستور saveas به صورتPDF ذخیره بشن. من این دستور رو تو یه حلقه قرار دادم (' saveas(gcf,'figure(i)','pdf ولی کلا یا ذخیره نمیشه وخطا میده یا فقط اولین نمودار ذخیره میشه. مشکل نوشتن آرکمان دستور رو میشه برام حل کنید؟


ممنون:redface:

سلام

اسم فایلهات بایستی واسه هر فایلی متفاوت باشه. اینجوری که شما نوشتید اسم همه فایلهای خروجی یه جوره و در نهایت برنامه ات یه فایل pdf خروجی داره.
واسه درست کردن اسم فایلها میتونی این کار رو انجام بدی:

saveas(gcf, sprintf('figure(%d)',i), 'pdf')
 

robotnic

عضو جدید
سلام
دوست عزیز بخاطر اینه که تقسیم بندیتون در جهت X کمه.
برای درست نشون دادن نمودار باید x رو به تعداد زیاد تری تقسیم کنید.
یعنی به جای x=.0:1:5 که در کد شما هست بنویسید x=.0:0.01:5

موفق باشید

ممنون از راهنماييتون ...
ولی من بازه رو از اينم کوچيک تر کردم ولی بازم شکست داره...:(
 

Fathy

متخصص مهندسی سازه و زلزله
ممنون از راهنماييتون ...
ولی من بازه رو از اينم کوچيک تر کردم ولی بازم شکست داره...:(

سلام

نمودار خروجی به شکل زیره که یه نمودار صاف و همواره. فقط تو x=1 با تو جه به تابع تون یه نقطه ناپیوستگی داره که شاید منظورتون از شکست این نقطه باشه، درسته؟

 

پیوست ها

  • 1.jpg
    1.jpg
    15.8 کیلوبایت · بازدیدها: 0

robotnic

عضو جدید
سلام

نمودار خروجی به شکل زیره که یه نمودار صاف و همواره. فقط تو x=1 با تو جه به تابع تون یه نقطه ناپیوستگی داره که شاید منظورتون از شکست این نقطه باشه، درسته؟


واقعا ممنون ...
درسته ...اما تو کتاب شکل رسم شده اينطوری نيست و قسمتی که پايين افتاده بايد بالای نمودار باشه ...
منم يه دستوری می خوام که اين درست بشه ...
 

Fathy

متخصص مهندسی سازه و زلزله
واقعا ممنون ...
درسته ...اما تو کتاب شکل رسم شده اينطوری نيست و قسمتی که پايين افتاده بايد بالای نمودار باشه ...
منم يه دستوری می خوام که اين درست بشه ...

خوب قدرمطلق (abs) این توابع رو رسم کن:


x=0:0.01:5;
y=abs(atan((2.*x)./ (1-x.^2)));
y1=abs(atan((2.*.375.*x)./ (1-x.^2)));
y2=abs(atan((2.*.15.*x)./ (1-x.^2)));
y3=abs(atan((2.*.05.*x)./ (1-x.^2)));
y4=abs(atan((2.*.1.*x)./(1-x.^2)));
plot(x,y,x,y1,x,y2,x,y3,x,y4);
grid on

;)
 

robotnic

عضو جدید
خوب قدرمطلق (abs) این توابع رو رسم کن:


x=0:0.01:5;
y=abs(atan((2.*x)./ (1-x.^2)));
y1=abs(atan((2.*.375.*x)./ (1-x.^2)));
y2=abs(atan((2.*.15.*x)./ (1-x.^2)));
y3=abs(atan((2.*.05.*x)./ (1-x.^2)));
y4=abs(atan((2.*.1.*x)./(1-x.^2)));
plot(x,y,x,y1,x,y2,x,y3,x,y4);
grid on

;)


ممنون ... قدرمطلق رو با استادم رسم کردم ولی اينم نيست
بايد نمودار دومی شکل زير باشه ...
که قسمت اول دقيقا درسته ولی قسمت دوم نه ................:(
http://www.www.www.iran-eng.ir/attachment.php?attachmentid=96503&d=1336276634
 

Fathy

متخصص مهندسی سازه و زلزله
ممنون ... قدرمطلق رو با استادم رسم کردم ولی اينم نيست
بايد نمودار دومی شکل زير باشه ...
که قسمت اول دقيقا درسته ولی قسمت دوم نه ................:(

سلام

موقع پلات کردن جای x و y رو باید عوض کنی

کد:
[LEFT]clc
hold all
r=-1:0.001:1;
for eksay=[0 0.1 0.2 0.3 0.5 1]
    phi = atan(2*eksay*r./(1 - r.^2));
    plot(phi, r, 'LineWidth', 2);
end
grid on
[/LEFT]

نمودار خروجیش هم اینجوری میشه:


 

.:Shila:.

عضو جدید
کاربر ممتاز
کسی میدونه با چه دستوری میشه اعدادی رو که توی یک "ام فایل" ریخته شده رو خوند و به یک آرایه منتقلش کرد؟!

میشه "ام فایل" مورد نظرمون رو توی ام فایل دیگه ای فراخوانی بکنیم آیا؟
 

mehran_mo

کاربر فعال
سلام دوستان

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

ممنون
 

Fathy

متخصص مهندسی سازه و زلزله
سلام


کسی میدونه با چه دستوری میشه اعدادی رو که توی یک "ام فایل" ریخته شده رو خوند و به یک آرایه منتقلش کرد؟!

میشه "ام فایل" مورد نظرمون رو توی ام فایل دیگه ای فراخوانی بکنیم آیا؟

با دستور Load میتونید فایلهایی متنی رو که یه ماتریس تو اون ذخیره شده رو بار گذاری کنید. مثلا اگر اسم فایل شما test.txt باشه (و در مسیر کاری متلب باشه) با نوشتن دستور
کد:
[LEFT]
 load('test.txt') 
[/LEFT]
این فابل رو بارگذاری می کنید و ماتریس هم در متغیری به اسم test ذخیره میشه.



سلام دوستان

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

ممنون

با دستور solve یا roots به راحتی میتونید این جور معادلات رو حل کنید. مثلا واسه حل معادله x^2+2x+3=0 میتونید از دستورای زیر استفاده کنید:
کد:
[LEFT]
syms x
solve ('x^2+2*x+3=0')

% و یا دستور زیر

roots([1 2 3])
[/LEFT]
 

robotnic

عضو جدید
سلام

موقع پلات کردن جای x و y رو باید عوض کنی

کد:
[LEFT]clc
hold all
r=-1:0.001:1;
for eksay=[0 0.1 0.2 0.3 0.5 1]
    phi = atan(2*eksay*r./(1 - r.^2));
    plot(phi, r, 'LineWidth', 2);
end
grid on
[/LEFT]

نمودار خروجیش هم اینجوری میشه:



واقعا ممنونم ...
خيلی کمکم کردين ...
موفق باشيد ...:gol::gol::gol::gol:
 

.:Shila:.

عضو جدید
کاربر ممتاز
دوستان سلام
قبلا هم این سوال رو پرسیده بودم گفتم دوباره بپرسم شاید کسی بلد باشه
در مورد توابع تولید هش (hash) کسی چیزی میدونه؟
اینکه ورودیمون یه ام فایل پر از عدد باشه و بتونیم از اون عددها یه هش با طول ثابت بدست بیاریم
ممنون
 

bkashani

عضو جدید
سلام دوستان
ممکن کسی من راهنمایی کنه که چه طور میتونم یک تصویر را در متلب resample کنم؟
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
دوستان سلام
قبلا هم این سوال رو پرسیده بودم گفتم دوباره بپرسم شاید کسی بلد باشه
در مورد توابع تولید هش (hash) کسی چیزی میدونه؟
اینکه ورودیمون یه ام فایل پر از عدد باشه و بتونیم از اون عددها یه هش با طول ثابت بدست بیاریم
ممنون
سلام
در فایلی که براتون قرار دادم اطلاعات کاملی در مورد هش آورده شده .
فرمت فایل : word
لینک دانلود : hash
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
سلام دوستان
ممکن کسی من راهنمایی کنه که چه طور میتونم یک تصویر را در متلب resample کنم؟

تغییر اندازه یک تصویر با دستور imresize در متلب :

با استفاده از دستور imresize در متلب، می توانیم اندازه یک تصویر را تغییر بدهیم. با دستور imresize ، می توانیم تعیین کنیم که اندازه تصویر تا چه اندازه بزرگتر یا کوچکتر شود. دستور imresize را می توانیم به چندین روش مختلف به کار ببریم. این روش ها را در ادامه توضیح می دهیم.

تغییر اندازه بر اساس ضریبی از اندازه تصویر اولیه :

با فرض اینکه اطلاعات تصویر، در متغیر image ذخیره شده باشد، آنگاه چنانچه دستور imresize را به صورتimresize(image,A) به کار ببریم، که در آن A یک ضریب عددی است، آنگاه دستور imresize ، تصویر image را به اندازه ضریب A ، بزرگتر یا کوچکتر می کند. اگر ضریب A بین 0 تا 1 باشد، آنگاه تصویر حاصل، از تصویر image ، کوچکتر خواهد بود و چنانچه ضریب A ، بزرگتر از 1 باشد، آنگاه تصویر حاصل، از تصویر image ، بزرگتر می شود. به مثال زیر توجه کنید :

مثال :

کدهای زیر را می نویسیم :
PHP:
clear all
close all
clc
 
image=imread('friend.jpg');
imshow(image)
 
image_new=imresize(image,0.5)
figure
imshow(image_new)

ابتدا تصویری با نام friend.jpg را با دستور imread ، در نرم افزار متلب وارد می کنیم و آن را با دستور imshow ، نمایش می دهیم. سپس با دستور imresize ، اندازه تصویر را به نصف کاهش می دهیم (ضریب برابر با 0.5 انتخاب شده است). در پایان، تصویر حاصل شده (با نام image_new) را با دستور imshow نمایش داده ایم. دستور figure ، برای باز شدن یک پنجره مخصوص شکل جدید است تا در انتها، هر دو تصویر را داشته باشیم.


تغییر اندازه بر اساس تعداد ردیف ها و ستون های ماتریس اطلاعات تصویر ثانویه :
می توانیم اندازه تصویر ثانویه را بر اساس تعداد ردیف ها و تعداد ستون های ماتریس مربوط به آن، تعیین کنیم. برای این منظور، باید از دستور imresize ، به صورت imresize(image, [numrows numcols]) استفاده کنیم که در آن، پارامتر numrows برابر تعداد ردیف ها و پارامتر numcols برابر تعداد ستون های مورد نظر ما برای ماتریس مربوط به تصویر ثانویه می باشد. همان مثال قبل را این بار با این روش می نویسیم :

مثال :

کدهای زیر را می نویسیم :
PHP:
clear all
close all
clc
 
image=imread('friend.jpg');
imshow(image)
 
image_new=imresize(image,[200,80])
figure
imshow(image_new)

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

Similar threads

بالا