ايران ويج

نسخه‌ی کامل: کمک درباره نرم افزار متلب
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان خسته نباشید. تو انجمن گشتم چیز خاصی پیدا نکردم.
یه سوال داشتم میخواستم کمکم کنید.

تو متلب باید یه برنامه ساده بنویسم که بر اساس یه سری معیار ها یه ماتریس 6*6 به نام K میده و یه ماتریس 1*6 به نام u میده که بصورت زیر با هم ضرب میشن و یه ماتریس 1*6 میدن
k*u
حالا بعضی درایه های ماتریس u صفر هستن. فرض میکنیم درایه اول صفر باشه. میخوام ماتریس u به یه ماتریس 1*5 تبدیل بشه. تا اینجا مشکل ندارم. ولی میخوام سطر و ستون اول ماتریس k که 6*6 بود حذف بشه و ماتریس k تبدیل به یه ماتریس 5*5 بشه. (که دوباره قابلیت ضرب رو داشته باشه)
میدونین چکار کنم و چه کدی بنویسم؟ با تشکر


|0| |5 6 8 0 1 4|
|5| |4 1 2 6 9 1|
|6| |3 9 7 2 1 0|
|1|*|1 8 2 0 3 9|
|8| |5 1 0 3 2 6|
|3| |8 6 2 4 3 1|

تو شکل بالا میبینین منظورم چیه
چون درایه اول از ماتریس u صفر هست، میخوام سطر و ستون اول ماتریس k کلا حذف بشه که ماتریس k یه ماتریس 5*5 بشه
پیشاپیش با تشکر از لطفتون
دوستان کسی بلد نبود؟
سلام
حتما باید با عملگر های مربوط به ماتریس ها برنامه رو بنویسین؟

من خودم زیاد به بحث ماتریس ها مسلط نیستم ولی هدف شما رو میشه با برنامه نویسی عادی توسط آرایه ها و... هم پیاده کرد.
نقل قول: I don't know what version you have. MATLAB Coder does currently support deleting rows and columns from a matrix. You will need to start with a variable-size matrix, of course. Use coder.varsize to make any matrix that looks like a fixed-size matrix into a variable-sized one.

You can write something like:
کد php:
z(rowstodelete,:) = [];
    
z(:,colstodelete) = []; 
where rowstodelete and colstodelete are vectors of row and column indices, respectively. To do both rows and columns at once, I might rather write code like this
کد php:
ONE int32(1);
    
rowsleft setdiff(ONE:size(z,1),rowstodelete);
    
colsleft setdiff(ONE:size(z,2),colstodelete);
    
z(rowsleft,colsleft); 



منبع:
http://www.mathworks.com/matlabcentral/a...matlab-fcn
خیلی ممنون که جوابمو دادین. باید حتما با متلب باشه.
اینو که شما نوشتین اول امتحان میکنم، انشالا بشه. اگر نشد یکی یه روش دیگه بهم گفت.

روشش اینه چون حداکثر سه تا از سطر های ماتریس u میتونن حذف بشن، با دستور if میگم اگه یکیش صفر بود یه ماتریس 5*5 با این درایه ها بساز. اگه دوتاش صفر بود یه ماتریس 4*4 و اگه سه تاش صفر بود یه ماتریس 3*3 با این درایه ها.