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


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

درایه ماتریس

#1
سلام 
آیا در متلب دستوری وجود داره که مکانهایی که یک درایه در آن وجود داره رو مشخص کنه؟
مثلا برای این ماتریس 

کد:
A =

45 58 47 15 14 15
15 14 48 16 12 45
45 48 56 1 15 14
16 15 48 46 12 14
16 14 13 15 14 49

مکانهایی که مثلا عدد 14 وجود داره رو بده؟

(2,2) (1,4) (3,6) (4,6) (5,2) (5,5)
پاسخ

درایه ماتریس

#2
سلام.
فرض کنید که ماتریسی با نام A داریم و می خواهیم شماره ردیف و ستون درایه های برابر 2 را بدانیم، کدهای متلب زیر را می نویسیم :

کد:
clear all
close all
clc

A=[1 2 3; 2 5 2; 4 6 2]
[r,c]=find(A==2)

r_size=size(r);
for nn=1:r_size
    string=strcat('(',num2str(r(nn)),',',num2str(c(nn)),')');
    disp(string)
end

نتیجه اجرای کد متلب :

کد:
A =

     1     2     3
     2     5     2
     4     6     2


r =

     2
     1
     2
     3


c =

     1
     2
     3
     3

(2,1)
(1,2)
(2,3)
(3,3)

بردار r حاوی شماره ردیف و بردار c حاوی شماره ستون درایه ها می باشد. یعنی مثلا چون اولین درایه برابر 2 ، در ردیف شماره 2 و ستون شماره 1 است، بنابراین اولین عنصر بردار r برابر 2 و اولین عنصر بردار c برابر 1 قرار داده شده است. بنابراین از این اطلاعات استفاده کرده و با دستور disp ، موقعیت درایه ها را نمایش داده ایم.
دستور strcat برای اتصال رشته ها (strings) به هم، استفاده می شود. دستور num2str برای تبدیل اعداد به رشته، به کار می رود.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


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