انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چگونه این پروژه را انجام بدهم

چگونه این پروژه را انجام بدهم

#1
دوستان اگه کسی میتونه در این مورد کمکم کنه لطفا راهنمایی کنه تا انجامش بدم
 با استفاده از نرم افزار متلب تابعی را بنویسید که ماتریس a  را دریافت نموده
 اگر ماتریس a  مربعی نباشد پیغام matrix must be square  نمایش داده شود
 و اگر ماترس a  وارون پذیر نباشد پیغام matrix is singular  نمایش داده شود
 در صورتی که ماتریس a  هم مربعی و هم وارون پذیر بود این تابع ماتریس الحاقی a  را محاسبه کند و بعنوان خروجی ارائه   نماید.



 
پاسخ

چگونه این پروژه را انجام بدهم

#2
سلام ، کد مربوط به ماتریس مربعی رو نوشتم ولی شرط وارون پذیری ماتریس چیه؟ و فرمول ماتریس الحاقی رو هم بنویسید تا کدش رو بنویسم.



کد:
close all
clc
m=ماتریس ورودیتون رو اینجا بنویسید.
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end

 

 
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin

چگونه این پروژه را انجام بدهم

#3
سلام
شرط وارون پذیر بودن یک ماتریس اینه که دتر مینانش صفر نباشه
در مورد ماتریس الحاقی هم میتونم اینو بگم
ماتریس الحاقی یا Adjugate Matrix یا Adjoint Matrix از معکوس کردن درایه های ماتریس همسازه نسبت به قطر اصلی به دست می آید.
که ماتریس همسازه ماتریسی است که درایه های آن به وسیله ی فرمول زیر به دست می آید.

A [font]i, j[/font] = (-1) ᴵ + ᴶ x | M [font]i ,j [/font]|
 
پاسخ

چگونه این پروژه را انجام بدهم

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

کد:
close all
clc
m=ماتریس ورودیتون رو اینجا بنویسید.
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=[];
M(:,j)=[];
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

A

 لازم هم نیست اونجایی که نوشتم ماتریس ورودی رو اینجا بنویسید حتما تو برنامه بنویسی ، میتونی اصلا اون خط رو پاک کنی و بعد وقتی m.file رو که برنامه بالا میشه رو ذخیره کردی ، تو متلب در command window ، ماتریس m رو بساز مثلا :

کد:
>>m=[1,2,3;4,5,6;7,8,9];

که با اجرای خط بالا ماتریس m  در workspace ساخته میشه و بعد m.file رو اجرا کن . به همین راحتی. موفق باشی. 
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin

چگونه این پروژه را انجام بدهم

#5
(۱۳۹۲/۰۷/۱۶, ۱۰:۲۹ ب.ظ)'4i469x' نوشته: داداش اینم کد ، ولی خودت دستی برای یک ماتریس محاسبه کن و بعد با این کد تو متلب محاسبه کن ببین درسته یا نه . 


کد:
close all
clc
m=ماتریس ورودیتون رو اینجا بنویسید.
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=;
M(:,j)=;
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

A

 لازم هم نیست اونجایی که نوشتم ماتریس ورودی رو اینجا بنویسید حتما تو برنامه بنویسی ، میتونی اصلا اون خط رو پاک کنی و بعد وقتی m.file رو که برنامه بالا میشه رو ذخیره کردی ، تو متلب در command window ، ماتریس m رو بساز مثلا :


کد:
>>m=[1,2,3;4,5,6;7,8,9];

که با اجرای خط بالا ماتریس m  در workspace ساخته میشه و بعد m.file رو اجرا کن . به همین راحتی. موفق باشی. 

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


 
پاسخ

چگونه این پروژه را انجام بدهم

#6
این لینک رو مطالعه کن :
http://www.kelidestan.com/matlab/matlab-14.php
میتونی لینک هایی که ادمین زحمت کشیده و درباره یادگیری برنامه متلب نوشته  رو بخونی. 
و اما یه توضیح مختصر درباره m فایل :  اگر برنامه ما دارای دستوراتی بیشتر از یک خط باشه ، ما دستورات رو باید در محلی از متلب بنویسیم و ذخیره کنیم که با اجرای اون ، خط به خط برنامه که اصطلاحا m فایل نامیده میشه ( چون با پسوند m. ذخیره میشوند.) اجرا میشن. خط های برنامه ای که نوشتم رو کپی و پیست باید بکنید کجا؟ در برنامه متلب گزینه New رو میزنید ( میخوایم New Script بسازیم.) و بعد خط های برنامه که نوشتم رو کپی پیست کنید در اون ، بعد اونو باید ذخیره کنیم . دکمه Save رو میزنی و در یه قسمت از کامپیوتر با یک اسم ذخیره میکنی مثلا Project.m . تمام شد. خطی که گفتم رو اینطور اصلاح کن ( علامت % در اول اون خط بذار که به این ترتیب این خطها به عنوان دستور اجرا نمیشن و فقط توضیحات هستند.)


کد:
%m=ماتریس ورودیتون رو اینجا بنویسید.

حالا در قسمت WorkSpace ( بالای قسمت های مختلف اسمشون نوشته شده ) ، ماتریس m رو بساز به این صورت :


کد:
m=[1,3,4;6,7,8;3,4,5];

برای ساختن ماتریس برای جدا کردن اعداد یک سطر از علامت کاما استفاده کن و بعد اگر خواستی اعداد سطر بعد رو  واردکنی از علامت ; استفاده کن. به همین راحتی ، با اجرای دستور بالا در قسمتت WorkSpace میتونی ببینی که ماتریس m به عنوان یک ماتریس ساخته شده . حالا m فایلی که نوشتیم و ذخیره کردیم رو با زدن دکمه Run اجرا کن ( یک دکمه از دکمه های خود برنامه متلب است پیداش کن ) . چون متغیرهایی که در m فایل تعریف کردیم رو ، برنامه متلب از قسمت workspace میخونه ، اگر ماتریس m اونجا نباشه متلب بهت اخطار میده . وقتی m فایل رو اجرا کردی تو قسمت workspace نگاه کنن ، هر متغیری که در m فایل نوشته بودیم اونجا هست . ( ضمنا ماتریسی m که میسازی رو به اسم m تعریف کردیم چون متغیری که به عنوان ماتریس ورودی در mفایل نوشتم m هست . به این نکته توجه کن . حالا اگر به جای ماتریس m ماغیر f رو قرار داده بودم باید ماتریسی که میساختی رو به اسم f میساختی به جای m .) موفق باشی
 
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin

چگونه این پروژه را انجام بدهم

#7
(۱۳۹۲/۰۷/۱۸, ۱۲:۰۶ ب.ظ)'4i469x' نوشته: این لینک رو مطالعه کن :
http://www.kelidestan.com/matlab/matlab-14.php
میتونی لینک هایی که ادمین زحمت کشیده و درباره یادگیری برنامه متلب نوشته  رو بخونی. 
و اما یه توضیح مختصر درباره m فایل :  اگر برنامه ما دارای دستوراتی بیشتر از یک خط باشه ، ما دستورات رو باید در محلی از متلب بنویسیم و ذخیره کنیم که با اجرای اون ، خط به خط برنامه که اصطلاحا m فایل نامیده میشه ( چون با پسوند m. ذخیره میشوند.) اجرا میشن. خط های برنامه ای که نوشتم رو کپی و پیست باید بکنید کجا؟ در برنامه متلب گزینه New رو میزنید ( میخوایم New Script بسازیم.) و بعد خط های برنامه که نوشتم رو کپی پیست کنید در اون ، بعد اونو باید ذخیره کنیم . دکمه Save رو میزنی و در یه قسمت از کامپیوتر با یک اسم ذخیره میکنی مثلا Project.m . تمام شد. خطی که گفتم رو اینطور اصلاح کن ( علامت % در اول اون خط بذار که به این ترتیب این خطها به عنوان دستور اجرا نمیشن و فقط توضیحات هستند.)



کد:
%m=ماتریس ورودیتون رو اینجا بنویسید.

حالا در قسمت WorkSpace ( بالای قسمت های مختلف اسمشون نوشته شده ) ، ماتریس m رو بساز به این صورت :



کد:
m=[1,3,4;6,7,8;3,4,5];

برای ساختن ماتریس برای جدا کردن اعداد یک سطر از علامت کاما استفاده کن و بعد اگر خواستی اعداد سطر بعد رو  واردکنی از علامت ; استفاده کن. به همین راحتی ، با اجرای دستور بالا در قسمتت WorkSpace میتونی ببینی که ماتریس m به عنوان یک ماتریس ساخته شده . حالا m فایلی که نوشتیم و ذخیره کردیم رو با زدن دکمه Run اجرا کن ( یک دکمه از دکمه های خود برنامه متلب است پیداش کن ) . چون متغیرهایی که در m فایل تعریف کردیم رو ، برنامه متلب از قسمت workspace میخونه ، اگر ماتریس m اونجا نباشه متلب بهت اخطار میده . وقتی m فایل رو اجرا کردی تو قسمت workspace نگاه کنن ، هر متغیری که در m فایل نوشته بودیم اونجا هست . ( ضمنا ماتریسی m که میسازی رو به اسم m تعریف کردیم چون متغیری که به عنوان ماتریس ورودی در mفایل نوشتم m هست . به این نکته توجه کن . حالا اگر به جای ماتریس m ماغیر f رو قرار داده بودم باید ماتریسی که میساختی رو به اسم f میساختی به جای m .) موفق باشی
 

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

کد:
m=[1,3,4;6,7,8;3,4,5];

ولی باز که توضیح دادین من نتونستم این برنامه رو تستش کنم و اجرا نمیشه
من به این صورت اجرا میکنم بگین که مشکل کجا هست و چرا اروور میده
اول میرم تو منو file سپس function و دستوری که گفتین رو کپی پست میکنم اینجا
یعنی اینطور

کد:
close all
clc
m=ماتریس ورودیتون رو اینجا بنویسید.
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=;
M(:,j)=;
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

A

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

سپس سیو میکنم ویه جایی سیو میشه
که اسم فایل سیو شده رو مینویسم proje بعد از سیو کردن میرم تو صفحه command window و مینویسم proje که اجرا بشه و اون سه پیغام رو به نمایش در بیاره اروور میده و مینویسه
Error: File: proje.m Line: 16 Column: 8
Expression or statement is incomplete or incorrect.
اگه کمکم کنین که مشکل از کجاست ممنون میشم
 
پاسخ

چگونه این پروژه را انجام بدهم

#8
دوست من ، همانطور که نوشتم شما باید New Script بسازی و بعد خط های کد رو کپی پیست کنی ، ما نمیخوایم function بسازیم ، بحث function متفاوت است . اما درباره خطی که ماتریس ورودی رو وارد کنید : بله درست است میتونید همونجا بنویسید و هم میتونید ماتریستون رو در command window بسازید و بعد m فایل رو اجرا کنید. ببینید اجرا کردن m فایل به این صورته که باید اول m فایل فراخوانی بشه یعنی open رو بزنید و m فایل رو انتخاب کنید ، بدین ترتیب در editor ، میتونید اونو مشاهده کنید و بعد اون رو run میکنیم ، دکمه ای به همین نام در متلب وجود داره . من از matlab2012b استفاده میکنم و toolbar در این متلب پیشرفته شده و از حالت منو نسخه های قبلی خارج شده مثل تفاوت ورد 2003 و ورد 2010 میمونه ! پس شما باید این دکمه رو پیدا کنی در منوها. در صورتی که current folder شما همان پوشه ای باشه که m فایل رو ذخیره کردید با نوشتن نام و پسوند m میتونید اونو در comman window اجرا کنید ، با خطایی که نوشتید در کاراکتر 8 خط 16 از m فایل خطایی وجود داره که باید برطرف بشه.

کد:
M(i,:)=[];
M(:,j)=[];

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

چگونه این پروژه را انجام بدهم

#9
(۱۳۹۲/۰۷/۱۸, ۰۹:۲۵ ب.ظ)'4i469x' نوشته: دوست من ، همانطور که نوشتم شما باید New Script بسازی و بعد خط های کد رو کپی پیست کنی ، ما نمیخوایم function بسازیم ، بحث function متفاوت است . اما درباره خطی که ماتریس ورودی رو وارد کنید : بله درست است میتونید همونجا بنویسید و هم میتونید ماتریستون رو در command window بسازید و بعد m فایل رو اجرا کنید. ببینید اجرا کردن m فایل به این صورته که باید اول m فایل فراخوانی بشه یعنی open رو بزنید و m فایل رو انتخاب کنید ، بدین ترتیب در editor ، میتونید اونو مشاهده کنید و بعد اون رو run میکنیم ، دکمه ای به همین نام در متلب وجود داره . من از matlab2012b استفاده میکنم و toolbar در این متلب پیشرفته شده و از حالت منو نسخه های قبلی خارج شده مثل تفاوت ورد 2003 و ورد 2010 میمونه ! پس شما باید این دکمه رو پیدا کنی در منوها. در صورتی که current folder شما همان پوشه ای باشه که m فایل رو ذخیره کردید با نوشتن نام و پسوند m میتونید اونو در comman window اجرا کنید ، با خطایی که نوشتید در کاراکتر 8 خط 16 از m فایل خطایی وجود داره که باید برطرف بشه.



کد:
M(i,:)=;
M(:,j)=;
دو خط بالا رو اصلاح کنید من در کدی که نوشتم دو علامت ماتریس تهی رو نداشتم . کد به راحتی اجرا میشه و مشکلی نداره. کد پست 4 رو هم تصحیح کردم میتونی اونو کپی پیست کنی.

 

 

دوست من میشه یه ایدی تو یاهو بدی تا ادد کنمت و اونجا بیشتر با هم صحبت کنیم
در ضمن راجع به function هم بگم که من اول تو پروژه گفته بودم که یک تابع بنویسید
بنابرین به نظر شما نباید از function استفاده کرد.؟؟؟؟
 
پاسخ

چگونه این پروژه را انجام بدهم

#10
ابتدا بهتر است که خود برنامه را اجرا کنید، آنگاه آن را به صورت تابع بنویسید.
همان طور که 4i469x تذکر دادن، برای ساخت یک m-file که شامل کدهای بالا باشد، مبحث زیر را بخوانید :

http://www.kelidestan.com/matlab/matlab-14.php

برای گیج نشدن، فعلا یک برنامه ساده (دو سه خطی) را درون m-file نوشته و اجرا کنید. زمانی که موفق شدید، آنگاه از کدهای نوشته شده در ارسال های قبلی برای اجرای برنامه مورد نظرتان، کمک بگیرید.
پس از آنکه مطمئن شدید که برنامه صحیح است، مبحث زیر را بخوانید که راهنمایی می کند که چگونه برنامه خود را به شکل یک تابع بنویسید :

http://www.kelidestan.com/matlab/matlab-15.php

توصیه می کنم که وقت بگذارید و این مباحث را به خوبی بخوانید و تنها هدفتان انجام آن پروژه نباشد. 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط 4i469x

چگونه این پروژه را انجام بدهم

#11
اینم تابع برنامه ( کدها را کپی پیست کن ، به همون ترتیب که برای ایجاد m فایل گفته شد. هر function به همون اسم function ذخیره میشه و پسوند .m میگیره . 


کد:
function [ A ] = MATRIX( m )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=[];
M(:,j)=[];
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

end


در صورتی که بخوای m فایل بالا رو ذخیره کنی ، چون یک تابع است متلب نام MATRIX رو به طور اتوماتیک برای ذخیره انتخاب میکنه . اسم تابع MATRIX است حتما باید با حروف یزرگ استفاده بشه ( متلب به حروف کوچک و بزرگ حساس است.) میتونی یک اسم دیگه برای تابع انتخاب کنی. برای اجرای تابع نیازی نیست حتما لودش کنی. باید اول اون تابع رو ذخیره کنی و بعد دکمه Set Path رو میزنی ( پیداش کن تو منوها)  و پوشه ای که تابع رو اونجا ذخیره کردی رو انتخاب کن . به این ترتیب متلب تابع MATRIX رو میشناسه . کافیه هر وقت متلب رو باز کردی تو خط فرمان بنویسی :


کد:
[A]=MATRIX([1,2,3;4,5,6])

دقیقا باید مثل خط بالا دستور بدی ، داخل پرانتز باید ماتریس خودت رو بنویسی که من اینجا یک ماتریس 2 در 3 رو معرفی کردم ، خروجی A است که خودش نمایش میده. ضمنا میلت رو چک کن برات یک ویدئو از ذخیره m فایل گذاشتم. 
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin

چگونه این پروژه را انجام بدهم

#12
(۱۳۹۲/۰۷/۱۸, ۱۱:۵۴ ب.ظ)'admin' نوشته: ابتدا بهتر است که خود برنامه را اجرا کنید، آنگاه آن را به صورت تابع بنویسید.
همان طور که 4i469x تذکر دادن، برای ساخت یک m-file که شامل کدهای بالا باشد، مبحث زیر را بخوانید :

http://www.kelidestan.com/matlab/matlab-14.php

برای گیج نشدن، فعلا یک برنامه ساده (دو سه خطی) را درون m-file نوشته و اجرا کنید. زمانی که موفق شدید، آنگاه از کدهای نوشته شده در ارسال های قبلی برای اجرای برنامه مورد نظرتان، کمک بگیرید.
پس از آنکه مطمئن شدید که برنامه صحیح است، مبحث زیر را بخوانید که راهنمایی می کند که چگونه برنامه خود را به شکل یک تابع بنویسید :

http://www.kelidestan.com/matlab/matlab-15.php

توصیه می کنم که وقت بگذارید و این مباحث را به خوبی بخوانید و تنها هدفتان انجام آن پروژه نباشد. 

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


 
پاسخ
 سپاس شده توسط admin

چگونه این پروژه را انجام بدهم

#13
(۱۳۹۲/۰۷/۱۹, ۰۱:۳۷ ق.ظ)'4i469x' نوشته: اینم تابع برنامه ( کدها را کپی پیست کن ، به همون ترتیب که برای ایجاد m فایل گفته شد. هر function به همون اسم function ذخیره میشه و پسوند .m میگیره . 



کد:
function [ A ] = MATRIX( m )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=;
M(:,j)=;
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

end


در صورتی که بخوای m فایل بالا رو ذخیره کنی ، چون یک تابع است متلب نام MATRIX رو به طور اتوماتیک برای ذخیره انتخاب میکنه . اسم تابع MATRIX است حتما باید با حروف یزرگ استفاده بشه ( متلب به حروف کوچک و بزرگ حساس است.) میتونی یک اسم دیگه برای تابع انتخاب کنی. برای اجرای تابع نیازی نیست حتما لودش کنی. باید اول اون تابع رو ذخیره کنی و بعد دکمه Set Path رو میزنی ( پیداش کن تو منوها)  و پوشه ای که تابع رو اونجا ذخیره کردی رو انتخاب کن . به این ترتیب متلب تابع MATRIX رو میشناسه . کافیه هر وقت متلب رو باز کردی تو خط فرمان بنویسی :



کد:
[A]=MATRIX([1,2,3;4,5,6])

دقیقا باید مثل خط بالا دستور بدی ، داخل پرانتز باید ماتریس خودت رو بنویسی که من اینجا یک ماتریس 2 در 3 رو معرفی کردم ، خروجی A است که خودش نمایش میده. ضمنا میلت رو چک کن برات یک ویدئو از ذخیره m فایل گذاشتم. 

 

دوست عزیز واقعا دستت درد نکنه
ممنونم ازت
خیلی کمک بزرگی کردی ممنون
 
پاسخ

چگونه این پروژه را انجام بدهم

#14
(۱۳۹۲/۰۷/۲۰, ۱۱:۱۳ ق.ظ)'cloner' نوشته:
(۱۳۹۲/۰۷/۱۹, ۰۱:۳۷ ق.ظ)'4i469x' نوشته: اینم تابع برنامه ( کدها را کپی پیست کن ، به همون ترتیب که برای ایجاد m فایل گفته شد. هر function به همون اسم function ذخیره میشه و پسوند .m میگیره . 




کد:
function [ A ] = MATRIX( m )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=;
M(:,j)=;
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

end


در صورتی که بخوای m فایل بالا رو ذخیره کنی ، چون یک تابع است متلب نام MATRIX رو به طور اتوماتیک برای ذخیره انتخاب میکنه . اسم تابع MATRIX است حتما باید با حروف یزرگ استفاده بشه ( متلب به حروف کوچک و بزرگ حساس است.) میتونی یک اسم دیگه برای تابع انتخاب کنی. برای اجرای تابع نیازی نیست حتما لودش کنی. باید اول اون تابع رو ذخیره کنی و بعد دکمه Set Path رو میزنی ( پیداش کن تو منوها)  و پوشه ای که تابع رو اونجا ذخیره کردی رو انتخاب کن . به این ترتیب متلب تابع MATRIX رو میشناسه . کافیه هر وقت متلب رو باز کردی تو خط فرمان بنویسی :




کد:
[A]=MATRIX([1,2,3;4,5,6])

دقیقا باید مثل خط بالا دستور بدی ، داخل پرانتز باید ماتریس خودت رو بنویسی که من اینجا یک ماتریس 2 در 3 رو معرفی کردم ، خروجی A است که خودش نمایش میده. ضمنا میلت رو چک کن برات یک ویدئو از ذخیره m فایل گذاشتم. 


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


 

 

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

کد:
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=[];
M(:,j)=[];
A(i,j)=((-1)^(i+j))*det(M);
پاسخ

چگونه این پروژه را انجام بدهم

#15
دو حلقه for است که برای هر بار تکرار، ماتریس اصلی m را در متغیر M جایگذاری میکنه و در خط بعد ردیف i رو حذف میکنه و در سطر بعد ستون j رو حذف میکنه و ماتریس کهاد حاصل میشه ، در خط بعد دترمینان ماتریس کهاد ضرب در -1 به توان i+j میشه ( همون فرمولی که نوشتی ). i از یک تا تعداد ردیف های ماتریس m است و j از یک تا تعداد ستونهای ماتریس m است.  ضمنا وقتی میخوای پست بذاری ، لازم نیست یک پست کامل که دیگری نوشته را نقل قول کنی ، میتونی فقط خط هایی که از پست طرف لازمه رو نقل قول کنی و بقیه رو حذف کنی.
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin

چگونه این پروژه را انجام بدهم

#16
(۱۳۹۲/۰۷/۲۱, ۱۲:۱۳ ق.ظ)'4i469x' نوشته: دو حلقه for است که برای هر بار تکرار، ماتریس اصلی m را در متغیر M جایگذاری میکنه و در خط بعد ردیف i رو حذف میکنه و در سطر بعد ستون j رو حذف میکنه و ماتریس کهاد حاصل میشه ، در خط بعد دترمینان ماتریس کهاد ضرب در -1 به توان i+j میشه ( همون فرمولی که نوشتی ). i از یک تا تعداد ردیف های ماتریس m است و j از یک تا تعداد ستونهای ماتریس m است.  ضمنا وقتی میخوای پست بذاری ، لازم نیست یک پست کامل که دیگری نوشته را نقل قول کنی ، میتونی فقط خط هایی که از پست طرف لازمه رو نقل قول کنی و بقیه رو حذف کنی.

 
مرسی از توضیحتون فقط یه مشکل کوچیک داره برنامه
اونم اینه که من این ماتریسو به تابع میدم تا ماتریس الحاقی رو حساب کنه ولی درایه هارو جابه جا مینویسه
مثلا
A=[1,2,3;3,0,3;-2,3,0] ro be tabe midam ke matrise elhaghi ro mohasebe kone injori javab mide

    -9    -6     9
     6     4    -5
     3     3    -3
در حالی که من به صورت دستی حساب میکنم این حاصل بدست میاد
    -9     6     3
    -6     4     3
     9    -5    -3

اگر دقت کنید سطر سوم با ستون اول ماتریس دوم برابر هستش
همین طور بقیه سطر ها و ستون ها جابه جا شدن
 
پاسخ

چگونه این پروژه را انجام بدهم

#17
شما درست محاسبه کردید؟ برای درایه 1و1 وقتی به صورت دستی محاسبه میکنم مقدار 9 به دست میاد ، چطور شما 3 به دست آوردید؟ محاسبه خودتون رو بنویسید.
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#18
(۱۳۹۲/۰۷/۲۱, ۰۳:۱۲ ب.ظ)'4i469x' نوشته: شما درست محاسبه کردید؟ برای درایه 1و1 وقتی به صورت دستی محاسبه میکنم مقدار 9 به دست میاد ، چطور شما 3 به دست آوردید؟ محاسبه خودتون رو بنویسید.

 

اول باید بگم درایه هایی که من نوشتم جابه  جا شدن در اینجا
بخاطر همین به این صورت مینویسم
به تابع این ماتریس رو میدم که الحاقی بهم بده
A=[1,1,2;3,0,3;-2,3,0]ke javab ro be in sorat mide
[-3,3,3;-6,4,5;9,-6,-9]
dar hali ke man be sorate dasti hal mikonam  in miad
[3  6  -9]سطر اول
[3  4  -6]سطر دوم
[- 3 -5  9]سطر سوم
اینو بگم که اعداد به دست امده همه درست هستش فقط جابه جا نوشته میشن


 
پاسخ

چگونه این پروژه را انجام بدهم

#19
برای نمایش صحیح اطلاعات در ارسال ها، می توانید از بلوک کد استفاده کنید.
اگر از بلوک کد برای نمایش اطلاعاتی مثل ماتریس ها استفاده کنید، دیگر چنین مشکلی پیش نمی آید. اگر ارسال مشکلی داشت، از گزینه ((ویرایش)) و سپس گزینه ((ویرایش کامل)) استفاده نمایید تا بتوانید دوباره آن را تصحیح کنید.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

چگونه این پروژه را انجام بدهم

#20
(۱۳۹۲/۰۷/۲۲, ۱۲:۰۲ ب.ظ)'admin' نوشته: برای نمایش صحیح اطلاعات در ارسال ها، می توانید از بلوک کد استفاده کنید.
اگر از بلوک کد برای نمایش اطلاعاتی مثل ماتریس ها استفاده کنید، دیگر چنین مشکلی پیش نمی آید. اگر ارسال مشکلی داشت، از گزینه ((ویرایش)) و سپس گزینه ((ویرایش کامل)) استفاده نمایید تا بتوانید دوباره آن را تصحیح کنید.
 

 
چشم حتما


 
پاسخ

چگونه این پروژه را انجام بدهم

#21
(۱۳۹۲/۰۷/۲۲, ۱۱:۳۵ ق.ظ)'cloner' نوشته: اول باید بگم درایه هایی که من نوشتم جابه  جا شدن در اینجا
بخاطر همین به این صورت مینویسم
به تابع این ماتریس رو میدم که الحاقی بهم بده
A=[1,1,2;3,0,3;-2,3,0]ke javab ro be in sorat mide
[-3,3,3;-6,4,5;9,-6,-9]
dar hali ke man be sorate dasti hal mikonam  in miad
[3  6  -9]سطر اول
[3  4  -6]سطر دوم
[- 3 -5  9]سطر سوم
اینو بگم که اعداد به دست امده همه درست هستش فقط جابه جا نوشته میشن

 

متوجه شدم شما چی میگی! این ماتریسی که کد متلب محاسبه میکنه ماتریس همسازه است , برای محاسبه ماتریس الحاقی کافیه آخر کد که نوشتم A بنویسی 'A به همین سادگی جای ردیف و ستون ها تعویض میشه.
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#22
(۱۳۹۲/۰۷/۲۲, ۰۷:۳۸ ب.ظ)'4i469x' نوشته:
(۱۳۹۲/۰۷/۲۲, ۱۱:۳۵ ق.ظ)'cloner' نوشته: اول باید بگم درایه هایی که من نوشتم جابه  جا شدن در اینجا
بخاطر همین به این صورت مینویسم
به تابع این ماتریس رو میدم که الحاقی بهم بده
A=[1,1,2;3,0,3;-2,3,0]ke javab ro be in sorat mide
[-3,3,3;-6,4,5;9,-6,-9]
dar hali ke man be sorate dasti hal mikonam  in miad
[3  6  -9]سطر اول
[3  4  -6]سطر دوم
[- 3 -5  9]سطر سوم
اینو بگم که اعداد به دست امده همه درست هستش فقط جابه جا نوشته میشن


 

متوجه شدم شما چی میگی! این ماتریسی که کد متلب محاسبه میکنه ماتریس همسازه است , برای محاسبه ماتریس الحاقی کافیه آخر کد که نوشتم A بنویسی 'A به همین سادگی جای ردیف و ستون ها تعویض میشه.

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


 
پاسخ

چگونه این پروژه را انجام بدهم

#23
(۱۳۹۲/۰۷/۲۳, ۰۹:۲۷ ق.ظ)'cloner' نوشته:
(۱۳۹۲/۰۷/۲۲, ۰۷:۳۸ ب.ظ)'4i469x' نوشته:
(۱۳۹۲/۰۷/۲۲, ۱۱:۳۵ ق.ظ)'cloner' نوشته: اول باید بگم درایه هایی که من نوشتم جابه  جا شدن در اینجا
بخاطر همین به این صورت مینویسم
به تابع این ماتریس رو میدم که الحاقی بهم بده
A=[1,1,2;3,0,3;-2,3,0]ke javab ro be in sorat mide
[-3,3,3;-6,4,5;9,-6,-9]
dar hali ke man be sorate dasti hal mikonam  in miad
[3  6  -9]سطر اول
[3  4  -6]سطر دوم
[- 3 -5  9]سطر سوم
اینو بگم که اعداد به دست امده همه درست هستش فقط جابه جا نوشته میشن



 

متوجه شدم شما چی میگی! این ماتریسی که کد متلب محاسبه میکنه ماتریس همسازه است , برای محاسبه ماتریس الحاقی کافیه آخر کد که نوشتم A بنویسی 'A به همین سادگی جای ردیف و ستون ها تعویض میشه.


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


 

 
فقط میشه بگین که چرا از دستور 'A استفاده میکنیم؟؟؟/؟؟


 
پاسخ

چگونه این پروژه را انجام بدهم

#24
خودتون تو پست سومی یا چهارمی بود گفتید که ماتریس الحاقی همون ماتریس همسازه است با این تفاوت که جای سطرها و ستوهاش نسبت به قطر اصلی عوض شدند! خب وقتی مینویسی 'A ، علامت ' یعنی ترانهاده ماتریس .
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#25
(۱۳۹۲/۰۷/۲۳, ۰۷:۳۴ ب.ظ)'4i469x' نوشته: خودتون تو پست سومی یا چهارمی بود گفتید که ماتریس الحاقی همون ماتریس همسازه است با این تفاوت که جای سطرها و ستوهاش نسبت به قطر اصلی عوض شدند! خب وقتی مینویسی 'A ، علامت ' یعنی ترانهاده ماتریس .

 
درسته همینطوره
ولی متوجه نشدم که کجا باید A' رو وارد کنم میشه دقیقا جاشو بهم بگین ممنون میشم


 
پاسخ

چگونه این پروژه را انجام بدهم

#26
آخرین خط کد نوشتم A ، چرا نوشتم؟ برای اینکه اگر ننویسی هیچ چیزی برای خروجی نمایش نمیده ، اگر غیر از تابع، کدها رو به صورت m فایل ذخیره کردی باید خط آخر نوشته شده A تغییرش بدی به : 'A   برای اینکه متوجه بشی کدها را تغییر دادم به شکل زیر :
کد تابع 


کد:
function [ y ] = MATRIX( m )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=[];
M(:,j)=[];
A(i,j)=((-1)^(i+j))*det(M);
end
end
end
y=A';
end

کد m فایل 


کد:
close all
clc
m=ماتریس ورودیتون رو اینجا بنویسید.
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=[];
M(:,j)=[];
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

A'

ممکنه بگی وقتی میخوام تابع رو اجرا کنم باید چطوری بنویسم ؟ به صورت زیر :


کد:
[F]=MATRIX([1,2,3;4,5,6;7,8,9]);
نام ماتریس خروجی رو هر چی میخوای بذار ، در کد تابع ما فقط مشخص میکنیم که از متغیرهایی که در تابع هست کدوم ها رو در خروجی نمایش بده و باید به  تعداد خروجی های تعریف شده و با رعایت ترتیب اونها از اول به آخر ، حروفی برای نمایش خروجی بذاری ، مثلا اگر در تابعی که نوشتیم خروجی رو به صورت [A,y] بنویسم ، برای اجرای اون باید در کد بالا که نوشتیم یک متغیر دیگر هم تعریف کنی به این شکل :



کد:
[ٍe,F]=MATRIX([1,2,3;4,5,6;7,8,9]);

یعنی در خروجی تابع اول ماتریس همسازه رو نمایش میده و بعد ماتریس الحاقی رو ، که تو کد بالا که نوشتیم ماتریس خروجی با حرف e ماتریس همسازه میشه و ماتریس F ، ماتریس الحاقی. اگر هم بخوای در کدهای m فایل ( تابع رو نمیگم اون کد دیگه رو میگم ) خروجی هم همسازه و هم الحاقی باشه باید خط آخر که نوشته 'A بنویسی : 
A و بعد خط بعدی 'A  . امیدوارم متوجه شده باشی.
 
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#27
(۱۳۹۲/۰۷/۲۷, ۰۳:۱۱ ب.ظ)'4i469x' نوشته: آخرین خط کد نوشتم A ، چرا نوشتم؟ برای اینکه اگر ننویسی هیچ چیزی برای خروجی نمایش نمیده ، اگر غیر از تابع، کدها رو به صورت m فایل ذخیره کردی باید خط آخر نوشته شده A تغییرش بدی به : 'A   برای اینکه متوجه بشی کدها را تغییر دادم به شکل زیر :
کد تابع 



کد:
function [ y ] = MATRIX( m )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=;
M(:,j)=;
A(i,j)=((-1)^(i+j))*det(M);
end
end
end
y=A';
end

کد m فایل 



کد:
close all
clc
m=ماتریس ورودیتون رو اینجا بنویسید.
m_size=size(m);
if m_size(1)~=m_size(2)
error('matrix must be square.')
end
DET=det(m);
if DET==0
error('matrix is singular')
end
if m_size(1)==m_size(2) && DET~=0
for i=1:m_size(1)
for j=1:m_size(2)
M=m;
M(i,:)=;
M(:,j)=;
A(i,j)=((-1)^(i+j))*det(M);
end
end
end

A'

ممکنه بگی وقتی میخوام تابع رو اجرا کنم باید چطوری بنویسم ؟ به صورت زیر :



کد:
[F]=MATRIX([1,2,3;4,5,6;7,8,9]);
نام ماتریس خروجی رو هر چی میخوای بذار ، در کد تابع ما فقط مشخص میکنیم که از متغیرهایی که در تابع هست کدوم ها رو در خروجی نمایش بده و باید به  تعداد خروجی های تعریف شده و با رعایت ترتیب اونها از اول به آخر ، حروفی برای نمایش خروجی بذاری ، مثلا اگر در تابعی که نوشتیم خروجی رو به صورت [A,y] بنویسم ، برای اجرای اون باید در کد بالا که نوشتیم یک متغیر دیگر هم تعریف کنی به این شکل :




کد:
[ٍe,F]=MATRIX([1,2,3;4,5,6;7,8,9]);

یعنی در خروجی تابع اول ماتریس همسازه رو نمایش میده و بعد ماتریس الحاقی رو ، که تو کد بالا که نوشتیم ماتریس خروجی با حرف e ماتریس همسازه میشه و ماتریس F ، ماتریس الحاقی. اگر هم بخوای در کدهای m فایل ( تابع رو نمیگم اون کد دیگه رو میگم ) خروجی هم همسازه و هم الحاقی باشه باید خط آخر که نوشته 'A بنویسی : 
A و بعد خط بعدی 'A  . امیدوارم متوجه شده باشی.
 

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


 
پاسخ

چگونه این پروژه را انجام بدهم

#28
دستوری که نوشتم همین کار رو میکنه مثلا ماتریس زیر رو در نظر بگیر:
3 2 1
6 5 4
9 8 7
ترانهاده اون میشه :
7 4 1
8 5 2
9 6 3

خودت ببین تمام درایه ها نسبت به قطر اصلی تعویض شدن؟!؟!؟!؟ یک مثال بنویس متوجه بشم . چون مثال قبلیت که در صفحه 2 نوشته بودی رو صحیح جواب میده . تمام کدهایی که نوشتم در پست قبلی رو کپی و پیست کن به جای قبلی ها. اگر مقداری درباره متلب و دستوراتش مطالعه کنی خودت خیلی راحت تر میتونی کدها رو تغییر بدی ، یه مقدار وقت بذار و از مطالبی که ادمین نوشته استفاده کن ، من هم اولش از همین مطالب سایت کلیدستان خوندم ، انجمن رو نمیگم ، مطالبی که برای آموزش متلب در کلیدستان هست.
 
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#29
(۱۳۹۲/۰۷/۲۸, ۱۰:۰۰ ب.ظ)'4i469x' نوشته: دستوری که نوشتم همین کار رو میکنه مثلا ماتریس زیر رو در نظر بگیر:
3 2 1
6 5 4
9 8 7
ترانهاده اون میشه :
7 4 1
8 5 2
9 6 3

خودت ببین تمام درایه ها نسبت به قطر اصلی تعویض شدن؟!؟!؟!؟ یک مثال بنویس متوجه بشم . چون مثال قبلیت که در صفحه 2 نوشته بودی رو صحیح جواب میده . تمام کدهایی که نوشتم در پست قبلی رو کپی و پیست کن به جای قبلی ها. اگر مقداری درباره متلب و دستوراتش مطالعه کنی خودت خیلی راحت تر میتونی کدها رو تغییر بدی ، یه مقدار وقت بذار و از مطالبی که ادمین نوشته استفاده کن ، من هم اولش از همین مطالب سایت کلیدستان خوندم ، انجمن رو نمیگم ، مطالبی که برای آموزش متلب در کلیدستان هست.
 

 
مهندس دستت درد نکنه
راهنمایی هات خیلی مفید بودن و چیزای زیادی یاد گرفتم
فقط میخوام که اسم تابع رو گزاشتیم MATRIX میخوام تغیرش بدم به شماره دانشجوییم یعنی 9122010034 تابع اجرا نمیشه
Error: Unbalanced or unexpected parenthesis or bracket.
یعنی
function [ output_args ] = 9122010034( m
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
وبقیه دستورات رو کپی پیست میکنم
 
پاسخ

چگونه این پروژه را انجام بدهم

#30
شما نمیتونی عدد برای نام ماتریس یا نام m فایل انتخاب کنی وباید حتما یکی از حروف الفبای انگلیسی اول نوشته بشه و من لزومی نمیبینم شما شماره دانشجوییت رو بذاری برای اسم ماتریس !!! اسم تابع همون اسمی قرار میگیره که تابع با اون اسم ذخیره میشه مثلا تابع mATrix  به اسم mATrix.m ذخیره میشه .  اگر میخوای حرفه ای عمل کنی چند خط کد زیر رو دقیقا زیر خط اول که تابع نوشته شده قرار بده ، این خطها به عنوان دستور شناسایی نمیشن بلکه توضیحات برنامه ات هستند ، دو خط سبز رنگ میبینی که اولشون علامت % گذاشته شده ، اونها را پاک کن این چند خط رو قرار بده ، اسمت رو هم جای خالی بنویس :


کد:
% This program calculate Adjugate Matrix.
% m = input matrix
% y = output matrix or Adjugate Matrix.
% Author : ......................... , Autumn 1392

 اسم تابع رو بذار adjugate
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#31
(۱۳۹۲/۰۷/۲۹, ۰۶:۱۷ ب.ظ)'4i469x' نوشته: شما نمیتونی عدد برای نام ماتریس یا نام m فایل انتخاب کنی وباید حتما یکی از حروف الفبای انگلیسی اول نوشته بشه و من لزومی نمیبینم شما شماره دانشجوییت رو بذاری برای اسم ماتریس !!! اسم تابع همون اسمی قرار میگیره که تابع با اون اسم ذخیره میشه مثلا تابع mATrix  به اسم mATrix.m ذخیره میشه .  اگر میخوای حرفه ای عمل کنی چند خط کد زیر رو دقیقا زیر خط اول که تابع نوشته شده قرار بده ، این خطها به عنوان دستور شناسایی نمیشن بلکه توضیحات برنامه ات هستند ، دو خط سبز رنگ میبینی که اولشون علامت % گذاشته شده ، اونها را پاک کن این چند خط رو قرار بده ، اسمت رو هم جای خالی بنویس :

کد:
% This program calculate Adjugate Matrix.
% m = input matrix
% y = output matrix or Adjugate Matrix.
% Author : ......................... , Autumn 1392

 اسم تابع رو بذار adjugate

 

درسته حق با شماست نیازی نیست که شماره بزاریم رو برنامه
فقط یه سوالی داشتم اونم اینه که میشه برای نمایش پیغام ها از دستور error استفاده نکنیم
یعنی از دستوراتی مثلdispیا else تو تابع استفاده کنیم
اگه بشه لطفا با اون دستورات هم برنامه رو بنویسین
مرسی!!!!!!1


 
پاسخ

چگونه این پروژه را انجام بدهم

#32
اگر در کدهای نوشته شده از دستور disp به جای error  استفاده کنی ، بعد از اجرای کد خواهیم داشت :

کد:
>> [y ] = MATRIX( [1,2] )
matrix must be square.
[color=#FF0000]Error using det
Matrix must be square.

Error in MATRIX (line 10)
DET=det(m);[/color]

جمله ای که سیاه رنگ است بعد از اجرای دستور : matrix must be square. به خاطر این است که از دستور disp استفاده شده است. در صورتی که اگر همان دستور error  استفاده شود خواهیم داشت :

کد:
>> [y ] = MATRIX( [1,2] )
[color=#FF0000]Error using MATRIX (line 8)
matrix must be square.[/color]

انتخاب با خودتون است ، البته توضیحات هر دو دستور رو بخونید و بعد تصمیم بگیرید ، در هر صورت در هر جا که در کد error  نوشته شده میتونید به جاش disp  بذارید و بالعکس. cloner این آخرین بار است که میگم لطفا وقتی میخواید پست بذارید کل متن نوشته شده طرف مقابلتون رو نقل قول نکنید، اینطور تعداد خطوط درصفحه بالا میره و تعداد صفحات بی جهت زیاد میشه ، در صورتی که به این نصیحت عمل نکنید ، در اینصورت انتظار هیچ پاسخی از طرف من را نداشته باشید.
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#33
مهندس معذرت میخوام
ببخشید
پاسخ

چگونه این پروژه را انجام بدهم

#34
ادمین جان درسته ولی برای نمایش پیغام matrix is singular
این دستور رو تایپ میکنم و نمایش نمیده پیغام رو و این اررور رو میده
[F]=said([1,4;1,4])



Undefined function 'DET' for input arguments of type 'char'.

Error in said (line 8)
DET ==det(m);
باید بگم بهتون که من تابع رو بادستور disp نوشتم نه با دستور error
لطفا بگین که مشکل چیه

 
پاسخ

چگونه این پروژه را انجام بدهم

#35
یه مقدار باید کدها رو بررسی کنی ، توصیه میکنم کدها رو کپی پیست کنی تو ورد و پرینت بگیری و کدها را دقیقا بررسی کنی و بفهمی کدها چکار میکنن ، از راهنمای متلب کمک بگیر و در اینترنت سرچ کن تا بفهمی.
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#36
مهندس بنده تا جایی که میتونم جستجو  میکنم و انواع فیلمهای اموزشی رو نگاه میکنم
اگه شما هم راهنمایی کنین ممنون میشم
پاسخ

چگونه این پروژه را انجام بدهم

#37
شما باید به پیام های متلب توجه کنی اینطوری خیلی راحت میتونی پی ببری چی شده ، به شما گفتم چه کار کنید : کدها رو کپی پیست کنید تو ورد و پرینت بگیرید ، اونوقت متوجه میشید ، در دستور خطا به شما داره میگه DET تعریف نشده است ، خب ببینید در چه خطی DET  تعریف شده ، وقتی پیغامی که نوشتید matrix is singular نمایش داده شده پس از خطی که این پیغام رو در کدها نوشتید رد شده ، اینطوری برنامه رو رفع خطا میکنید ، پرینت بگیرید از کدها و جلوی هر خط یا چند خط بنویسید داره چه کاری انجام میشه . اون said چه دستوریه؟ خب معلومه دستور متلب نیست و در پیغام خطا داره میگه said چیه؟
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#38
said اسم تابع هستش که قرار دادم
درسته متوجه میشم که مشکل از det هستش اما هر کاری کردم برطرف نشد این خطا


 
پاسخ

چگونه این پروژه را انجام بدهم

#39
مشکل شاید به خاطر اینه که = با == متفاوت هستند اولی یعنی مساوی و دومی یعنی برابر .

کد:
a=2;
if a==2
disp('yes');
end

 
دوست دارم زندگی رو . . . 
پاسخ

چگونه این پروژه را انجام بدهم

#40
(۱۳۹۲/۰۸/۱۶, ۰۲:۱۹ ق.ظ)'4i469x' نوشته:  
من یه روش دیگه واسه نوشتن این تابع پیدا کردم اما تو قسمت سکریپت نوشتم حالا میخوام ببرمش تو فانکشن بنویسم که اررور میده
کد پی‌اچ‌پی:
clear all
clc
A
=input ('A:');
[
a,b]=size (A);
if 
a~=b;
    
disp('Matrix be square.');
else
if 
det(A)==0;
    
disp('Matrix is singular.');
end
end
A_size
=size(A);
zeros(A_size);
if 
A_size(1)==A_size(2) && det(A)~=0
    
for i=1:A_size(1)
        for 
j=1:A_size(2)
            
M=A;
            
M(i,:)=[];
            
M(:,j)=[];
            
N(i,j)=((-1)^(i+j))*det(M);
        
end
    end
end
adj 
N
میشه بگین چطوری تو فانکشن بنویسم
دستور فانکشن رو لطفا قرار بدین

 
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان