Vertauschen Sie Zeilen und Spalten in MATLAB

Sheeraz Gul 20 Juni 2023
  1. Tauschen Sie Zeilen und Spalten mit Basis-MATLAB aus
  2. Vertauschen Sie Zeilen und Spalten mit einer benutzerdefinierten Funktion in MATLAB
  3. Tauschen Sie Zeilen und Spalten mit einer Kombination aus den Funktionen randperm() und size() in MATLAB
Vertauschen Sie Zeilen und Spalten in MATLAB

Dieses Tutorial zeigt, wie man Zeilen und Spalten in MATLAB vertauscht.

MATLAB hat verschiedene Methoden, um Zeilen und Spalten miteinander zu vertauschen. Dieses Tutorial enthält verschiedene Methoden zum Austauschen von Zeilen und Spalten in MATLAB.

Tauschen Sie Zeilen und Spalten mit Basis-MATLAB aus

Base MATLAB hat eine einfache Funktionalität, die verwendet werden kann, um Zeilen mit Zeilen und Spalten mit Spalten zu vertauschen. Versuchen wir ein Beispiel, um Zeilen mit Zeilen zu tauschen.

% Random 4x6 matrix
A = rand(4,6)

%Swap 1st row with the fourth.
A([4 1],:) = A([1 4],:)

Der obige Code erstellt eine zufällige 4x6-Matrix und tauscht die 1. mit der 4. Zeile aus. Siehe Ausgabe:

Reihen 4x6 vertauschen

Wie wir sehen können, wird Reihe 1 mit Reihe 4 vertauscht. Versuchen wir nun das gleiche Beispiel für die Spalten.

% Random 4x6 matrix
A = rand(4,6)

%Swap 1st column with the sixth.
A(:,[1 6]) = A(:,[6 1])

Sie denken vielleicht, dass der Code ähnlich ist, aber es gibt einen kleinen Unterschied. Für Zeilen verwenden wir den Ausdruck A([4 1],:) und für Spalten verwenden wir das Komma- und Doppelpunktsymbol am Anfang wie A(:,[1 6]).

Sehen Sie sich die Ausgabe für diesen Code an.

Spalten tauschen 4x6

Vertauschen Sie Zeilen und Spalten mit einer benutzerdefinierten Funktion in MATLAB

Wir können auch eine benutzerdefinierte Funktion mit der grundlegenden MATLAB-Funktionalität erstellen, die sowohl für Zeilen als auch für Spalten verwendet werden kann. Hier ist die Funktion.

swap.m:

function matrix = swap(matrix,dimension,a,b)

if dimension == 1
    row_swap = matrix(a,:);
    matrix(a,:) = matrix(b,:);
    matrix(b,:) = row_swap;
elseif dimension == 2
    col_swap = matrix(:,a);
    matrix(:,a) = matrix(:,b);
    matrix(:,b) = col_swap;
end

Die obige Funktion benötigt vier Parameter, zuerst die Matrix; Zweitens die Dimension, bei der 1 Zeilen und 2 Spalten bedeutet, und zwei Elemente, die miteinander ausgetauscht werden müssen, entweder Zeilen oder Spalten.

Lassen Sie uns versuchen, Zeilen mit dieser Funktion zu tauschen.

% Random 4x6 matrix
A = rand(4,6)

% Swap rows using the swap function
swap(A,1,1,4)

Der obige Code tauscht die erste Zeile mit der vierten aus. Siehe Ausgabe:

Funktion Zeilen tauschen

Um die Spalten auszutauschen, müssen wir die Dimension auf 2 ändern. Siehe Beispiel:

% Random 4x6 matrix
A = rand(4,6)

% Swap rows using the swap function
swap(A,2,1,6)

Der obige Code tauscht die Spalte zuerst mit der sechsten mit der Funktion swap. Siehe Ausgabe:

Funktion Spalten tauschen.

Tauschen Sie Zeilen und Spalten mit einer Kombination aus den Funktionen randperm() und size() in MATLAB

Die Methode randperm() dient der zufälligen Permutation von ganzen Zahlen für eine vorgegebene Matrix. Es braucht nur einen Parameter, nämlich die Matrix.

Die Methode size() gibt die Grösse für jede Dimension eines Arrays oder die Grösse einer angegebenen Matrix zurück. Dieses Verfahren kann auf die folgenden unterschiedlichen Arten verwendet werden.

  1. size(X) – Gibt die Größe jeder Dimension eines Arrays zurück.
  2. [m,n] = size(X) – Gibt die Größe der angegebenen Matrix in zwei Variablen zurück.
  3. size(X,dim) – Gibt die Grösse der X-Dimension durch den Skalar dim zurück.
  4. [d1,d2,d3,…,dn] = size(X) - Gibt die Grössen für die n Dimensionen für ein Array in separaten Variablen zurück.

Wobei X das Array, die Matrix oder Dimension und dim der Skalarwert für die Dimension ist. Der Nachteil dieser Methode besteht darin, dass die Zeilen oder Spalten zufällig vertauscht werden.

Lassen Sie uns versuchen, Zeilen mit dieser Methode zu tauschen.

% Random 4x4 matrix
A = rand(4,4)

% Calling the randperm() and size() methods
% to swap rows
Swapped = A(randperm(size(A, 1)),:)

Der obige Code tauscht zufällig eine Zeile mit einer anderen aus. Siehe Ausgabe:

A =

    0.4574    0.6377    0.2891    0.2548
    0.8754    0.9577    0.6718    0.2240
    0.5181    0.2407    0.6951    0.6678
    0.9436    0.6761    0.0680    0.8444


Swapped =

    0.9436    0.6761    0.0680    0.8444
    0.4574    0.6377    0.2891    0.2548
    0.5181    0.2407    0.6951    0.6678
    0.8754    0.9577    0.6718    0.2240

Ähnlich wie beim Austauschen von Spalten ist hier das Beispiel.

% Random 4x4 matrix
A = rand(4,4)

% Calling the randperm() and size() methods
% to swap rows
Swapped = A(:, randperm(size(A, 1)))

Der obige Code tauscht zufällig die Spalten für die angegebene Matrix aus. Siehe Ausgabe:

A =

    0.6022    0.4624    0.3225    0.1759
    0.3868    0.4243    0.7847    0.7218
    0.9160    0.4609    0.4714    0.4735
    0.0012    0.7702    0.0358    0.1527


Swapped =

    0.3225    0.6022    0.4624    0.1759
    0.7847    0.3868    0.4243    0.7218
    0.4714    0.9160    0.4609    0.4735
    0.0358    0.0012    0.7702    0.1527
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook