Matlab - sumar o restar por cada elemento de columna de una matriz

 
Vista:
sin imagen de perfil
Val: 23
Ha disminuido su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

sumar o restar por cada elemento de columna de una matriz

Publicado por Nick (14 intervenciones) el 06/05/2021 20:53:38
Buenas tardes a todos,
en este caso especial deseo que a la matriz A, la cual tiene la forma

1 2 3
4 5 6
7 8 9

pueda tomar la tercera columna y que quede así

1 2 -7
4 5 16
7 8 19

Esto significa que de la tercera columna los menores a 4 sean restados con -10, y los mayores a 4 sean sumados con +10, este caso me ayudará mucho a generalizarlo en otras aplicaciones, muchas gracias de antemano a todos. Comparto mi avance del código en matlab.


1
2
3
4
5
6
7
8
A=[1 2 3;4 5 6;7 8 9]
R1=A(:,3)>4
R2=A(:,3)<4
if R
    A(R1,3)+10
elseif A(:,3)<4
    A(R2,3)-10
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jon
Val: 354
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

sumar o restar por cada elemento de columna de una matriz

Publicado por Jon (161 intervenciones) el 07/05/2021 13:22:14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A = [1 2 3; 4 5 6; 7 8 9];
fprintf('A = \n\n'); disp(A);
 
B(:,1) = A(:,1);
B(:,2) = A(:,2);
idxH = find (A(:,3) > 4);
idxL = find (A(:,3) < 4);
if (idxL)
    B(idxL,3) = A(idxL,3) - 10;
end
if (idxH)
    B(idxH,3) = A(idxH,3) + 10;
end
 
fprintf('B = \n\n'); disp(B);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

sumar o restar por cada elemento de columna de una matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 11/05/2021 01:45:40
1
2
3
4
5
6
clear
A=[1 2 3
4 5 6
7 8 9]
A(A(:,3)<4,3)=A(A(:,3)<4,3)-10;
A(A(:,3)>4,3)=A(A(:,3)>4,3)+10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> logica1
 
A =
 
     1     2     3
     4     5     6
     7     8     9
 
 
A =
 
     1     2    -7
     4     5    16
     7     8    19
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar