Intercambio de dos elementos en cada fila de una array sin bucle en MATLAB

Una array es un grupo de números de dos capas. En MATLAB, podemos crear una Array ingresando componentes en cada línea como números delimitados por comas o espacios y también utilizando punto y coma para estampar el final de cada línea.

Acercarse:

  • Paso 1: Elija 2 elementos seguidos usando lógico()
  • Paso 2: obtenga todas las combinaciones posibles usando perms()
  • Paso 3: elige 5 números aleatorios del 1 al 24 usando la función Randi()
  • Paso 4: índice lógico para elegir números en cada fila
  • Paso 5: Crear una Array (Original)
  • Paso 6: transponer la array
  • Paso 7: elige los datos. Cada columna contiene dos números de cada fila en la array A
  • Paso 8: Intercambiar los valores
  • Paso 9: rellene los datos
  • Paso 10: transponer para dar el resultado final

Ejemplo:

Matlab

% MATLAB Program to Swap 2 Elements 
% in each row without Loops
% Step1 : Pick 2 elements in a row
flag=logical([0 0 1 1]); 
  
% Step2 : Get all possible Combinations
p=perms(flag); 
  
% Step3 : Pick 5 Random Numbers from 1 to 24
index1=randi(24,5,1); 
  
% Step4 : Logical Index to Pick Numbers in Each Row
index=p(index1,:);
  
% Step5 : Create A Matrix (Original)
A=reshape(1:20,5,4)
  
% Step6 : Transpose the Matrix
B=A';
data=B(index');
  
% Step7 : Pick the Data
% Each column contains two numbers from each row in the matrix A
data=reshape(data,2,[]) 
  
% Step8 : Swap the values 
data=data([2,1],:)
  
% Step9 : Fill Back the Data
B(index')=data;
  
% Step10 : Transpose to give the Final Result
B=B'

Producción:

Publicación traducida automáticamente

Artículo escrito por Akash7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *