Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Skriv en funksjon trizero som tar inn en tabell A med like mange rader som kolonner og et flagg (logisk variabel) upper. Hvis upper == true skal alle elementene over hoveddiagonalen nullstilles og hvis upper == false skal alle elementene under hoveddiagonalen nullstilles. Resten av elementene skal beholde sin opprinnelige verdi. Hele tabellen skal returneres etter nullstilling av de angitte elementer. Returner en tom tabell hvis antall rader ikke er lik antall kolonner i inngangstabellen A. Se også figur 1.

Videoforklaring (16:18)

Del 1 (5:32)Del 2 (10:46)
Widget Connector
urlhttps://www.youtube.com/watch?v=xU0AxvjYqKA
Widget Connector
urlhttps://www.youtube.com/watch?v=FEDOAiwZO6o
Introduksjon av oppgaven, oppdeling i mindre biter, og løsning av det første, enkleste tilfellet.Løsning av den vanskeligste delen av oppgaven.

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titletrizero.m
function retur = trizero(A, upper)
    if size(A, 1) ~= size(A, 2)
        retur = [];
        return;
    end
    N = size(A, 1);
    for i = 1:N-1
        if upper
            A(i, i+1:N) = 0;
        else
            A(i+1:N, i) = 0;
        end
    end
    retur = A;
end