Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Matlab - Zamiana kolumn w macierzy

damianh6 26 Lut 2015 13:16 2085 1
  • #1 26 Lut 2015 13:16
    damianh6
    Poziom 15  

    Witam, mam problem duży jak dla laika. Nie mogę poradzić sobie aby gdy mam wygenerowaną macierz muszę , napisać funkcję która będzie tworzyć nowa macierz z tym że pierwsza kolumna będzie ostatnią w nowo utworzonej macierzy itd. . Kolejno muszę posortować w wszystkie wyrazy metodą q sort. Pomoże ktoś lub odpłatnie zrobi ? Troszkę już zrobiłem, ale największy problem mam jak zamienić kolumny pierwsza z ostatnią itd... i tym jak wysyłać do poprawnie napisanej funkcji q sort wyrazy.

    0 1
  • #2 02 Mar 2015 10:23
    SebastianO7
    Poziom 2  

    Załóżmy, że mamy macierz, np.

    A=[1 2 3]
    [4 5 6]
    [7 8 9]

    którą w Matlabie wpiszemy za pomocą komendy

    >> A=[1 2 3; 4 5 6; 7 8 9]

    możesz zamienić kolumny używając zapisu

    >> B(:,1)=A(:,end)

    lub

    >> B(:,1)=A(:,3)

    (do pierwszej kolumny macierzy B wpisujemy elementy ostatniej kolumny macierzy A)

    >> B(:,2)=A(:,end-1)

    lub

    >> B(:,2)=A(:,2)

    (do drugiej kolumny macierzy B wpisujemy elementy przedostatniej kolumny macierzy A.)

    >> B(:,3)=A(:,1)

    Na koniec można przypisać nową macierz do zmiennej A

    >> A=B

    Można tą całą procedurę zapisać w pętli:

    [m,n]=size(A); % pobieramy rozmiar macierzy A
    B=zeros(m,n); % iniciujemy macierz pomocniczą B wymiaru mxn wypełnioną zerami
    for i=1:n
    B(:,i)=A(:,n+1-i)
    end
    A=B

    Można teraz otrzymany wynik przekazać jako wynik funkcji (i użyć go w funkcji q sort).

    0