کلیدستان

نسخه‌ی کامل: درایه ماتریس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام 
آیا در متلب دستوری وجود داره که مکانهایی که یک درایه در آن وجود داره رو مشخص کنه؟
مثلا برای این ماتریس 

کد:
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)
سلام.
فرض کنید که ماتریسی با نام 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 برای تبدیل اعداد به رشته، به کار می رود.