Matlab - Guardar matriz

 
Vista:
Imágen de perfil de Jon
Val: 354
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Guardar matriz

Publicado por Jon (161 intervenciones) el 20/10/2020 10:27:05
Hola a todos,

Necesito sumar 2 matrices de 3x50 aplicando combinatoria. Es decir, la primera fila de la matriz A ha de sumarse con toda la matriz B, y así respectivamente.

Para ello, he planteado un simple For seleccionando A(i,:) para cada vuelta del bucle. El problema es que no sé cómo guardar el resultado en C, que será una matriz de 9x50. Aquí abajo dejo el código.

1
2
3
4
5
6
7
8
9
10
11
%% Data
n = 3;                  % number of fsw
x = 50;                 % number of Vwind
A = ones(n, x);         % PlossMSC
B = ones(n, x);         % PlossGSC
C = zeros(n, x);        % memory preallocation
 
%% Loop Sum
for i = 1:n
    C = A(i,:) + B;     % C index doubt [???]
end

Un saludo,

Jon
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

Guardar matriz

Publicado por Jon (161 intervenciones) el 20/10/2020 17:23:55
Hola Jose,

Lo siento, a ver si con el siguiente código manual lleno de comentarios se entiende mejor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
%% Data
n = 3;                  % number of fsw
x = 50;                 % number of Vwind
A = ones(n, x);         % PlossMSC
B = ones(n, x);         % PlossGSC
C = zeros(n, x);        % memory preallocation
 
%% Manual Sum
C1 = A(1,:) + B;        % suma de la fila 1 de la matriz A [1x50] con la matriz completa B [3x50]
C2 = A(2,:) + B;        % suma de la fila 2 de la matriz A [1x50] con la matriz completa B [3x50]
C3 = A(3,:) + B;        % suma de la fila 3 de la matriz A [1x50] con la matriz completa B [3x50]
C = [C1; C2; C3];       % resultado que se quiere obtener, que sería una matriz 3D [3x3x50 o 9x50]
 
% NOTA. Por lo que he visto, no hace falta redimensionar cada fila de la
% matriz A mediante "repmat" ya que MATLAB hace correctamente la suma entre
% un array [1x50] y una matriz [3x50]
 
%% Loop Sum
% for i = 1:n
%     C = A(i,:) + B;     % C index doubt [???]
% end

Muchas gracias,

Jon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
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

Guardar matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 20/10/2020 17:26:34
1
2
3
4
C=[ ]
 for i = 1:n
    C =[ C; A(i,:) + B];     % C index doubt [???]
 end

No probado en matlab, asumiendo que las dimensiones son correctas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar