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

golemaryam_1983

عضو جدید
کاربر ممتاز
سلام
اگر بخوام یه عدد اعشار رو به بزرگترین عدد صحییح تبدیل کنم از چه دستوری باید استفاده کنم؟؟؟؟؟؟
مثلا 1.3 تبدیل بشه به 2
سلام دوست عزیز من با متلب زیاد اشنایی ندارم ببنید تابع ()round رو داره.
با تشکر
 

hosseinassar

مدیر ارشد
برای گرد کردن اعداد به سمت مثبت بی نهایت از دستور ceil استفاده کنید
مثلا 3=(2.4)ceil
دستور round اعداد را به نزدیک ترین عدد صحیح گرد می کنه
 

sarakhh

عضو جدید
سلام
آیا امکات داره آرایه 3 بعدی در matlab تعریف کنیم؟؟؟؟؟؟؟؟؟
اگر آره به چه طریق؟؟؟؟؟؟؟؟؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
a = zeros(m, n, r);
با سه تا حلقه for مقداردهیش کن مثلاً a(j,j,k)=2;

اگر دستور اول جاییش مشکل داشت ببخش چون متلب دم دستم نبود.
 

behnam5670

عضو جدید
کاربر ممتاز
سلام
آیا امکات داره آرایه 3 بعدی در matlab تعریف کنیم؟؟؟؟؟؟؟؟؟
اگر آره به چه طریق؟؟؟؟؟؟؟؟؟

مثال 3 بعدی و 4 بعدی رو برات توو این کد زدم

 

sarakhh

عضو جدید
برای خارج شدن از حلقه ی for در حین اجرای حلقه از چه دستوری باید استفاده کنیم؟؟؟؟؟؟؟
مثلا برای بعضی از زبان های برنامه نویسی از exit for استفاده می کنیم.معادل این دستور در matlab چی هست؟؟؟؟؟؟؟؟؟؟؟؟؟؟
 
آخرین ویرایش:

sarakhh

عضو جدید
پیدا کردم.
دستور break برای خروج از for و while در حال اجرا استفاده می شه.
 

sarakhh

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

arya2001

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

ramin4251

عضو جدید
برای خارج شدن از حلقه ی for در حین اجرای حلقه از چه دستوری باید استفاده کنیم؟؟؟؟؟؟؟
مثلا برای بعضی از زبان های برنامه نویسی از exit for استفاده می کنیم.معادل این دستور در matlab چی هست؟؟؟؟؟؟؟؟؟؟؟؟؟؟


ميتونيد از دستور break استفاده كنيد



 
آخرین ویرایش توسط مدیر:

ramin4251

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

ميتوني از يه دايره استفاده كني و 3 نقطه از محيط اون رو انتخاب كني. سخت نيست.



 
آخرین ویرایش توسط مدیر:

mas68

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

meytim

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

simple

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


من اتفاقي الآن اين رو ديدم. اگه هنوز دنبال جوابشي خيلي ساده است؛ بايد بعد از خوندن فايل، نمونه داده‏هاي اون رو از آخر به اول پخش كني. اين هم يه مثال:​
کد:
  [FONT=Courier New]
[n,fs,b]=wavread(‘C:\WINDOWS\Media\ding.wav’);
  
sound(n(end:-1:1),fs,b)[/FONT]
 
آخرین ویرایش:

emreh

کاربر حرفه ای
کاربر ممتاز
سلام...
کسی می دونه چجوری تویه متلب باید هشدا بدم.... یعنی مثلا اگه جایی غلط بودش... مثل برنامه های اجرایی یه پنجره باز بشه و هشدار بده...
ممنون میشم راهنمایی کنید....
با تشکر...
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
برنامه ای میخام که کار تابع imrotat رو انجام بده
یعنی کمک در مورد نوشتن تابع های متلب میخام

کد:
function [result]=fnImageRotation(img,thet)

% Get size of the image matrix
% m : number of rows
% n : number of columns
[m,n,p]=size(img);

if thet>1 | thet<0
    thet=thet/100;
end

mm = m*sqrt(2);
nn = n*sqrt(2);

for t=1:mm
   for s=1:nn
       
       i = uint16((t-mm/2)*cos(thet)+(s-nn/2)*sin(thet)+m/2);
       j = uint16(-(t-mm/2)*sin(thet)+(s-nn/2)*cos(thet)+n/2);
      
       if i>0 && j>0 && i<=m && j<=n           
          imgTemp(t,s,:)=img(i,j,:);
       end
      
   end
end

% return obtained image
result=imgTemp;

end
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام...
کسی می دونه چجوری تویه متلب باید هشدا بدم.... یعنی مثلا اگه جایی غلط بودش... مثل برنامه های اجرایی یه پنجره باز بشه و هشدار بده...
ممنون میشم راهنمایی کنید....
با تشکر...

کد:
errordlg('Please enter correct info.','Error','modal');
 

..:: civil ::..

عضو جدید
چند تا سوال متلب-

چند تا سوال متلب-

با سلام
1-ببخشید چه طوری میشه یه حلقه رو با دوتا متغیر انجام داد منظورم اینه :
for i=1:3 & j=1:5
for z=2:7 & m=1:3
k(i,z)=k(i,z)+kk(j,m)​
end
end​
یعنی می خوام دو تا آی و جی با هم کار کنند همزمان و 2 تا بعدیم با هم نه اینکه
i=1​
بعد حلقه جی تا آخر بره! یعنی نمی خوام تو در تو باشن.

2-توی یک حلقه فور در هر مرحله یک ماتریس چند در چند ایجاد میشه حالا چطوری میتونم مقدار هر مرحله رو بعدا فراخوانی کنم ؟؟ یعنی چه طوری بگم که مثلا اینجا ماتریس ایجاد شده در گردش اول رو قرار بده آخه حلقه فور فقط آخری رو میگیره!! بعدم اگه حتی همه رو نگه داره بلد نیستم چطوری فراخوانی کنم

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

ببخشید چون فارسی و انگلیسی با هم نمیشه تو یه خط نوشت مجبو شدم بنویسم "فور" ضمنا 2 تا سوال تو یه تاپیک که غیر قانونی نیست؟؟؟؟

 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
با سلام
1-ببخشید چه طوری میشه یه حلقه رو با دوتا متغیر انجام داد منظورم اینه :
for i=1:3 & j=1:5
for z=2:7 & m=1:3
k(i,z)=k(i,z)+kk(j,m)​
end
end​
یعنی می خوام دو تا آی و جی با هم کار کنند همزمان و 2 تا بعدیم با هم نه اینکه
i=1​
بعد حلقه جی تا آخر بره! یعنی نمی خوام تو در تو باشن.

2-توی یک حلقه فور در هر مرحله یک ماتریس چند در چند ایجاد میشه حالا چطوری میتونم مقدار هر مرحله رو بعدا فراخوانی کنم ؟؟ یعنی چه طوری بگم که مثلا اینجا ماتریس ایجاد شده در گردش اول رو قرار بده آخه حلقه فور فقط آخری رو میگیره!! بعدم اگه حتی همه رو نگه داره بلد نیستم چطوری فراخوانی کنم

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

ببخشید چون فارسی و انگلیسی با هم نمیشه تو یه خط نوشت مجبو شدم بنویسم "فور" ضمنا 2 تا سوال تو یه تاپیک که غیر قانونی نیست؟؟؟؟



دوست عزیز در مورد سئوال اول، راستش من این کار رو نکردم اما راه ساده اش تعریف یه متغیر بیرون حلقه است که در حلقه ای که مثلاً i اضافه میشه ، j هم افزایش پیدا کنه:
کد:
j = 1;
for i = 1 : 3
.
.
.
j = j+1;

end
در ضمن تو یک حلقه که نمیشه یه استپ 3 تایی داشت یه 5 تایی!

در مورد سئوال دومت نمیدونم درست متوجه شدم یا نه. فرض کن ماتریسی 3*3 داری، در دو حلقه for مقداردهی می کنی. وقتی درایه 1و3 یعنی سطر 1 و ستون 3 رو میخوای (با فرض اینکه اسم ماترسی mat باشه) :
کد:
a = mat(1,3);

اگر هم مثلاً یک سطر کاملش رو میخوای مثل سطر 1 :
کد:
a = mat(1,:);
 

..:: civil ::..

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

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
مرسی خانمم
نه توی سوال 2 منظورم این بود که مثلا توی یه حلقه فور یک ماتریس 3در 3 ساخته میشه توی گردش دوم باز یه ماترس 3در 3 ساخته میشه اما مقادیرش فرق می کنه با اونی که تو دور اول ساخته شده
حالا اگر هر 2 تاشو من بخوام یعنی یه جا اولی به کارم بیاد یه جا دومی چیکار کنم.آخه فور دومیو نگه میداره نه؟؟ چه طوری میتونم همه رو نگه دارم و فراخونیشون کنم؟؟

ماتریس قدرت خوبی در کار با ماتریس ها داره. از ماتریس سه بعدی استفاده ن و در هر بعد یه ماتریس 2 بعدی ذخیره میشه :gol:
 

..:: civil ::..

عضو جدید
ماتریس قدرت خوبی در کار با ماتریس ها داره. از ماتریس سه بعدی استفاده ن و در هر بعد یه ماتریس 2 بعدی ذخیره میشه :gol:

من که نفهمیدم ! از دوستان اگه کسی سوال 2 رو میتونه جواب بده ممنون میشم
ماتریس 3 بعدی؟؟!!
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
من که نفهمیدم ! از دوستان اگه کسی سوال 2 رو میتونه جواب بده ممنون میشم
ماتریس 3 بعدی؟؟!!

گلم یه راه ساده اش اینه که تکه کدت رو بذاری اینجا، شاید سریعتر بشه جوابی به شما داد :gol:
 

..:: civil ::..

عضو جدید
گلم یه راه ساده اش اینه که تکه کدت رو بذاری اینجا، شاید سریعتر بشه جوابی به شما داد :gol:

سلام-چشم
for i=1:4
x1=gcoord(elnn(i,1),1);
x2=gcoord(elnn(i,2),1);
y1=gcoord(elnn(i,1),2);
y2=gcoord(elnn(i,2),2);

L = sqrt((x1-x2)^2+(y1-y2)^2)

c=(x2-x1)/L
s=(y2-y1)/L

k= zeros(4,4);
k=[c^2,c*s,-c^2,-c*s
c*s,s^2,-c*s,-s^2
-c^2,-c*s,c^2,c*s
-c*s,-s^2,c*s,s^2]
end
ببخشید این ماتریس آخری همون طوری که می بینید هر بار یه ماتریسه که راستش چه جوری بگم !! من همشو می خوام یعنی اون کا که با آی=1 چه کا با آی= 2 چه ... و یه جایی می خوام بهش بگم این کا با آی 1 رو بذار یه جایی کا با آی = 2
خانم مدیر واستون ایمیل دادم آنلاینم اگه سوالی داشتین و متوجه نشدین چی می گم می تونین ازم بپرسین
خدا خیرتون بده که کمک می کنین!
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام-چشم
for i=1:4
x1=gcoord(elnn(i,1),1);
x2=gcoord(elnn(i,2),1);
y1=gcoord(elnn(i,1),2);
y2=gcoord(elnn(i,2),2);

L = sqrt((x1-x2)^2+(y1-y2)^2)

c=(x2-x1)/L
s=(y2-y1)/L

k= zeros(4,4);
k=[c^2,c*s,-c^2,-c*s
c*s,s^2,-c*s,-s^2
-c^2,-c*s,c^2,c*s
-c*s,-s^2,c*s,s^2]
end
ببخشید این ماتریس آخری همون طوری که می بینید هر بار یه ماتریسه که راستش چه جوری بگم !! من همشو می خوام یعنی اون کا که با آی=1 چه کا با آی= 2 چه ... و یه جایی می خوام بهش بگم این کا با آی 1 رو بذار یه جایی کا با آی = 2
خانم مدیر واستون ایمیل دادم آنلاینم اگه سوالی داشتین و متوجه نشدین چی می گم می تونین ازم بپرسین
خدا خیرتون بده که کمک می کنین!

خب ببین عزیزم شما همون اول یه ماتریس 4*4*4 تعریف کن و بعد تو حلقه جایی که k میخواد مقدار بگیره k:),:,i) رو مقدار بده.
یعنی در هر بعد یک ماتریس 4*4 داری و با استفاده از اندیس i میتونی به ماتریس 4*4 خودت برسی.
الن متلب دم دستم نیست. سعی میکنم عصر برات کدش رو بنویسم بذارم :gol:
 

..:: civil ::..

عضو جدید
خب ببین عزیزم شما همون اول یه ماتریس 4*4*4 تعریف کن و بعد تو حلقه جایی که k میخواد مقدار بگیره k:),:,i) رو مقدار بده.
یعنی در هر بعد یک ماتریس 4*4 داری و با استفاده از اندیس i میتونی به ماتریس 4*4 خودت برسی.
الن متلب دم دستم نیست. سعی میکنم عصر برات کدش رو بنویسم بذارم :gol:

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

Similar threads

بالا