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

misento

عضو جدید
مسئولین لطفا رسیدگی فرمائین :D
من دارم تو مطلب برنامه مینویسم ولی هر تابعی که میام اسمشو مینویسم خطا میده که "Error: Function definitions are not permitted in this context."
مشکلش از کجاس ؟ من سواد کار با مطلب ندارم :|
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
مسئولین لطفا رسیدگی فرمائین
من دارم تو مطلب برنامه مینویسم ولی هر تابعی که میام اسمشو مینویسم خطا میده که "Error: Function definitions are not permitted in this context."
مشکلش از کجاس ؟ من سواد کار با مطلب ندارم :|

این پیغام برای زمانیه که شما به اشتباه در جایی که مجاز نیستید بخواید تابع تعریف کنید.
ـ تعریف تابع با کلمه function شروع میشه؛ ممکنه شما واقعاً نمی خواید تابع تعریف کنید، اما این کلمه معنیش شروع به تعریف تابعه.
ـ شما فقط در دو جا مجاز به تعریف تابع هستید؛
  1. داخل یه mفایل، که در این صورت اون فایل با کلمه function شروع می شه.
  2. در داخل یه تابع به صورت لانه ای (شما با این حالت تابع تعریف نکنید)
 

misento

عضو جدید
این پیغام برای زمانیه که شما به اشتباه در جایی که مجاز نیستید بخواید تابع تعریف کنید.
ـ تعریف تابع با کلمه function شروع میشه؛ ممکنه شما واقعاً نمی خواید تابع تعریف کنید، اما این کلمه معنیش شروع به تعریف تابعه.
ـ شما فقط در دو جا مجاز به تعریف تابع هستید؛
  1. داخل یه mفایل، که در این صورت اون فایل با کلمه function شروع می شه.
  2. در داخل یه تابع به صورت لانه ای (شما با این حالت تابع تعریف نکنید)
من میخوام مثلا این سوال رو تو مطلب بنویسم و برنامشو فعلا اینجوری نوشتم . نمیدونم کجاش اشکال داره ، داخل
mفایل هم که هست .​
2013-05-15_203848.jpg
2013-05-13_233456.jpg
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
من میخوام مثلا این سوال رو تو مطلب بنویسم و برنامشو فعلا اینجوری نوشتم . نمیدونم کجاش اشکال داره ، داخل
mفایل هم که هست .​
مشاهده پیوست 151115
مشاهده پیوست 151116

ـ خط شماره 3 غلطه؛ خود ویرایشگر متلب این رو تشخیص داده و زیرش خط قرمز کشیده. اگه بری رو خط قرمز مربوطه در سمت راست ویرایشگر یه توضیحی هم میده گه مشکل چیه.
ـ این طوری که شما برنامه نوشتید احتیاج به تابع نیست؛ موقعی تابع می نویسن که بخوان یه سری عملیات مشخص رو با ورودیهای مختلف انجام بدن. تو برنامه شما همچین چیزی دیده نمی شه؛ بنابراین خط 3 و 14 رو حذف کنید این مشکل حله.
 

ohayo1368

عضو جدید
سلام به همه اساتید فن;)
چه قدر مطلب سخته!!! اخه مگه c چش بود که مطلب اختراع شد!!!
من میخام از کاربر یه دستور بگیرم مثلا F:AX
بعد تبدیلش کنم به F:AX/A
یعنی چند حرف بهش اضافه کنم میشه کمک کنید
:cry:
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
من میخام از کاربر یه دستور بگیرم مثلا F:AX
بعد تبدیلش کنم به F:AX/A
یعنی چند حرف بهش اضافه کنم میشه کمک کنید
:cry:

کد:
a='F:AX'
b=[a,'/A']


اینم اجراش:​


کد:
a =


F:AX




b =


F:AX/A


>>


چه قدر مطلب سخته!!! اخه مگه c چش بود که مطلب اختراع شد!!!

اگه تاریخچه به وجود اومدن متلب رو بخونید می بینید که به C هیچ ربطی نداشت؛ بلکه به خاطر حل بعضی از مشکلات فرترن به وجود اومد و قرار نبود اینقدر گسترش پیدا کنه. اما استقبال بیش از اندازه دیگران در سرتاسر جهان چاره ای نگذاشت جز گسترشش. از C هم خیلی آسونتره.
 

asal persian

عضو جدید
سلام
من یه فایل txt دارم که میخوام لودش کنم.ولی یه مشکلی که هست اینه که dataهای توی فایل به صورت سطر و ستون هستند که تقریبا ۱۱۹۰۰۰سطر داره.البته هیچ خط چین یا جدولی هم نداره.بعضی از درایه ها خالی هستن ومشکل متلب با همین خالی بودنه و error میده
نمیدونم که چطور این فایل رو loadکنم!!لطفا راهنمایی کنین.یه چیز دیگه این که من میخوام تو برنامه ام مثل دستور درایه که ماتریس داریم بدم و از dataها استفاده کنم میخوام بدونم متلب با این فایل من مثل ماتریس برخورد میکنه یا نه؟
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
textscan

textscan

سلام
من یه فایل txt دارم که میخوام لودش کنم.ولی یه مشکلی که هست اینه که dataهای توی فایل به صورت سطر و ستون هستند که تقریبا ۱۱۹۰۰۰سطر داره.البته هیچ خط چین یا جدولی هم نداره.بعضی از درایه ها خالی هستن ومشکل متلب با همین خالی بودنه و error میده
نمیدونم که چطور این فایل رو loadکنم!!لطفا راهنمایی کنین.یه چیز دیگه این که من میخوام تو برنامه ام مثل دستور درایه که ماتریس داریم بدم و از dataها استفاده کنم میخوام بدونم متلب با این فایل من مثل ماتریس برخورد میکنه یا نه؟

از دستور textscan استفاده کنید. یه نمونه پیوست می کنم. اسم فایل داده ها mmnrecipes.txt هست که 6 تا ستون داره. این دستورها رو استفاده کنید:
کد:
fid=fopen('mmnrecipes.txt');
d=textscan(fid,'%n%n%n%n%n%n');
fclose(fid);


x=[d{1}(1:36);d{5};d{1}(37:62);d{3};d{1}(63:end);d{5}-108;d{5}-124;d{3}-89];
y=[d{2}(1:36);d{6};d{2}(37:62);d{4};d{2}(63:end);d{6}    ;d{6}    ;d{4}   ];


plot(x,y,'linewidth',12),hold on
plot(d{1}(15:19),d{2}(15:19),'o','linewidth',5)
axis off
set(gcf,'Position',[250 370 870 210])
set(gca,'YDir','reverse')

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


مشاهده پیوست mmnrecipes.txt
 
آخرین ویرایش:

aria_survey87

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

 

mzolfaghari

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

mzolfaghari

عضو جدید
اگه دارید از شبکه عصبی mlp استفاده میکنید از newff بجاش استفاده کن
البته ارور ممکنه به ورژن متلبتون هم مرتبط بشه
 

mzolfaghari

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

atish69

عضو جدید
پروژه

پروژه

سلام دوستان من این ترم هوش مصنوعی دارم واستادمون پروژه ای که داده رو به زبان matlab میخواد! ما هم تا حالا با این زبان کار نکردیم چندتا فایل راهنما دانلود کردم ولی چندان بدرد نخورد چون باید با الگوریتم ژنتیک بنویسیم !اول میخوام بدونم این تابع رو چطوری باید توی متلب بنویسم و بعد هم اگه کسی اطلاعات کافی داره مراحل ماکزیمم سازی این تابع رو بهم بگه ممنون.مشاهده پیوست AI_H.pdfمشاهده پیوست AI_H.pdf
 
آخرین ویرایش:

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
سلام دوستان من این ترم هوش مصنوعی دارم واستادمون پروژه ای که داده رو به زبان matlab میخواد! ما هم تا حالا با این زبان کار نکردیم چندتا فایل راهنما دانلود کردم ولی چندان بدرد نخورد چون باید با الگوریتم ژنتیک بنویسیم !اول میخوام بدونم این تابع رو چطوری باید توی متلب بنویسم و بعد هم اگه کسی اطلاعات کافی داره مراحل ماکزیمم سازی این تابع رو بهم بگه ممنون.مشاهده پیوست 152001مشاهده پیوست 152001

قبل از هرچیز تابعی که در صورت مسأله هست با نمودار داده شده مغایره؛ واسه همین من اون رو یه مقدار تغییر دادم و در متلب یه تابع براش نوشتم:
کد:
function y=f_AI(x)
y=sin(x/10+10.2)+cos(x/40);

حالا با استفاده از تابع optga چند خطی برنامه نوشتم:
کد:
clear, clc, close all
 
[xmax,fval]=optga('f_AI',[0;255],10,50,30,0.002,0.8);
 
x=linspace(0,255,300);
y=f_AI(x);
plot(x,y)
xlim([0 255])
 
hold on
plot(xmax,fval,'ro')
title(['x|_{F_{max}} = ',num2str(xmax),'      F_{max} = ',num2str(fval)])
xlabel('x')
ylabel('f(x)')

نتیجه این شد:




  • برنامه optga تابعی از کتاب شگردهای عددی هست؛ برنامه ها ی کتاب رو می تونید از لینک زیر دانلود کنید.

  • برای اینکه بدونید ورودیها چی هستند داخل متن کتاب بخش 9.8 رو بخونید، یا راهنمای توی خود برنامه رو بخونید.
  • با توجه به اینکه برنامه از عددهای بختی استفاده می کنه، روند رسیدن به جواب در اجراهای مختلف با هم فرق می کنه (یعنی شما اجرا کنید اون دو تا نمودار اول چیز دیگه ای می شه). اما با توجه به اینکه جمعیت آغازین 50 کروموزومی برای یه تابع یک متغیره تو اون بازه، جمعیت نسبتاً بزرگیه، اکثراً باید به یه جواب خیلی نزدیک به بیشینه تابع همگرا بشه.
  • مشابه این کار رو با جعبه ابزار الگوریتم ژنتیک خود متلب هم می تونید انجام بدید.


یادداشت

کتاب شگردهای عددی، اولین کتاب الگوریتم ژنتیک فارسیه، که من 11 سال پیش نوشتمش. تقریباً به کتابخونه همه دانشگاههای دولتی یه نسخه هدیه دادم؛ اگه نداشتن، از انتشاراتش می تونید بگیرید (برای آدرس و شماره تماسش روی لینک امضای من کلیک کنید). 11 سال پیش شرکت MathWorks هنوز جعبه ابزار الگوریتم ژنتیک نداده بود.
 

storm

عضو جدید
سلام. یک سوال داشتم این برنامه نوشتم می خواستم یک نمودار بین aو Q_dot_21 بکشم .چه طوری می تونم؟.متشکرم .
for a=2.5:0.125:5

D=2;%[m]

T_1=100;
T_2=240; %[K]
epsilon_1=0.1; %parameter to be varied"
epsilon_2=0.8; %parameter to be varied"
sigma=5.67E-8; %[W/m^2-K^4], Stefan-Boltzmann constant"
%"ANALYSIS"
%"Consider the sphere to be surface 1, the surrounding cubic enclosure to be surface 2"
A_1=pi*D^2;
A_2=6*a^2;
Q_dot_12=(A_1*sigma*(T_1^4-T_2^4))/(1/epsilon_1+(1-epsilon_2)/epsilon_2*(A_1/A_2));
Q_dot_21=-Q_dot_12
end
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
یه روش غیرحرفه ای

یه روش غیرحرفه ای

سلام. یک سوال داشتم این برنامه نوشتم می خواستم یک نمودار بین aو Q_dot_21 بکشم .چه طوری می تونم؟.متشکرم .
for a=2.5:0.125:5

D=2;%[m]

T_1=100;
T_2=240; %[K]
epsilon_1=0.1; %parameter to be varied"
epsilon_2=0.8; %parameter to be varied"
sigma=5.67E-8; %[W/m^2-K^4], Stefan-Boltzmann constant"
%"ANALYSIS"
%"Consider the sphere to be surface 1, the surrounding cubic enclosure to be surface 2"
A_1=pi*D^2;
A_2=6*a^2;
Q_dot_12=(A_1*sigma*(T_1^4-T_2^4))/(1/epsilon_1+(1-epsilon_2)/epsilon_2*(A_1/A_2));
Q_dot_21=-Q_dot_12
end

کد:
a1=2.5:0.125:5;
Q_dot_21=[];
for a=a1
    D=2;%[m]
    T_1=100;
    T_2=240; %[K]
    epsilon_1=0.1; %parameter to be varied"
    epsilon_2=0.8; %parameter to be varied"
    sigma=5.67E-8; %[W/m^2-K^4], Stefan-Boltzmann constant"
    %"ANALYSIS"
    %"Consider the sphere to be surface 1, the surrounding cubic enclosure to be surface 2"
    A_1=pi*D^2;
    A_2=6*a^2;
    Q_dot_12=(A_1*sigma*(T_1^4-T_2^4))/(1/epsilon_1+(1-epsilon_2)/epsilon_2*(A_1/A_2));
    Q_dot_21=[Q_dot_21,-Q_dot_12];
end


plot(a1,Q_dot_21)
xlabel('a')
ylabel('Q^{dot}_{21}')
 
آخرین ویرایش:

danesh4

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

danesh4

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

danesh4

عضو جدید
تشخیص باز و بسته بودن چشم در عکس فراخوانی شده

تشخیص باز و بسته بودن چشم در عکس فراخوانی شده

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

eeiranmatlab

عضو جدید
سلام
من یه فایل txt دارم که میخوام لودش کنم.ولی یه مشکلی که هست اینه که dataهای توی فایل به صورت سطر و ستون هستند که تقریبا ۱۱۹۰۰۰سطر داره.البته هیچ خط چین یا جدولی هم نداره.بعضی از درایه ها خالی هستن ومشکل متلب با همین خالی بودنه و error میده
نمیدونم که چطور این فایل رو loadکنم!!لطفا راهنمایی کنین.یه چیز دیگه این که من میخوام تو برنامه ام مثل دستور درایه که ماتریس داریم بدم و از dataها استفاده کنم میخوام بدونم متلب با این فایل من مثل ماتریس برخورد میکنه یا نه؟

در متلب 2012 این کار به راحتی انجام می شود. یک ابزار چدید به متلب اضافه شده است به نام import data که به راحتی می توانیم نوع داده های ورودی را هم تعیین کنیم که به صورت یک ماتریس وارد فضای کاری شود.
 

eeiranmatlab

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

شما کافی است دنبال یک ویژگی داخل چشم باشید که با چشم بسته فرق داشته باشد.
البته در ابتدا بایستی موقعیت چشم را بیابید و سپس در آن ناحبه استخراج ویژگی کنید. برای یافتن موقعیت می توانید hough transform استفاده کنید.
بردار ویژگی آن هم چندان سخت نباید باشد، چون تفاوت بین پشم بسته و باز خیلی فرق می کند.
 

danesh4

عضو جدید
شما کافی است دنبال یک ویژگی داخل چشم باشید که با چشم بسته فرق داشته باشد.
البته در ابتدا بایستی موقعیت چشم را بیابید و سپس در آن ناحبه استخراج ویژگی کنید. برای یافتن موقعیت می توانید hough transform استفاده کنید.
بردار ویژگی آن هم چندان سخت نباید باشد، چون تفاوت بین پشم بسته و باز خیلی فرق می کند.


ممنون از راهنماییتون
ممکن بیشتر توضیح بدید اطلاعاتی در این زمینه ندارم
 

melimo

عضو جدید
دستور squareform

دستور squareform

با سلام
میشه به من بگید دستور squareform دقیقا عملکردش چه جوریه؟ help متلب رو دیدم مثال هاشم خوندم ولی طرز کارشو دقیقا نفهمیدم
 

storm

عضو جدید
سلام.خسته نباشی.شرمنده که همه اش وقتتون می گریم.دو تا سوال داشتم برنامه heat s از کتابتون که اجرا می کنم Error using HeatS (line 19)
.
enough input arguments و اون برنامه که زحمتشو واسم کشیدین این خط
Q_dot_21=[Q_dot_21,-Q_dot_12]
معنی اش چی؟.با تشکر از شما.
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
سلام.خسته نباشی.شرمنده که همه اش وقتتون می گریم.دو تا سوال داشتم برنامه heat s از کتابتون که اجرا می کنم Error using HeatS (line 19)
.
enough inputargumentsو اون برنامه که زحمتشو واسم کشیدین این خط
Q_dot_21=[Q_dot_21,-Q_dot_12]
معنی اش چی؟.با تشکر از شما.

ـ توی کتاب شگردهای عددی بعد از صفحه ای که تابع HeatS رو نوشتم، یه مثال هم نوشته ام. به همون صورت باید ورودیها رو بدید، اجرا کنید و خروجیها رو بگیرید. در مورد چگونگی نوشتن و اجرای تابع، بخش 1، زیربخش "16.1 تابعهاي كاربرساخته" از کتاب رو بخونید.
ـ دستور
کد:
Q_dot_21=[Q_dot_21,-Q_dot_12];

قرینه مقدار محاسبه شده برای Q_dot_12 در هر گام از حلقه for رو به عنوان یک ستون به آنچه که تا گام قبل از اون به دست اومده و در Q_dot_21 قرار داره اضافه می کنه (در مسأله شما یک ستون یعنی 1 عدد). این روش، روش خوبی در برنامه نویسی نیست؛ من برای اینکه ساختار برنامه شما رو دست نزنم این طوری نوشتم. در این زمینه، بخش 1، زیربخش "18.1چند گوشزد" و "19.1 تُند كردن محاسبات در متلب" از کتاب رو بخونید.
 

danesh4

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

misento

عضو جدید
میشه لطفا برنامه این 2تا سوال رو برام بنویسین
من هرکاری میکنم نمیشه :cry: :redface: :cry:
Snapshot_2013-06-05_184433.jpg
 

P O U R I A

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

من یه مشکل تو استفاده از تابع pdepe دارم .
تابع اصلی و شرایط مرزی و اولیه رو فکر کنم درست تعریف کردم و برنامه هم ران میشه ولی جواب کاملا غلط میده... کسی از شما دوستان میتونه کمکم کنه ...:)
 

Similar threads

بالا