Matlab - recorrer matriz

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

recorrer matriz

Publicado por Rodrigo (4 intervenciones) el 29/04/2021 23:32:18
Hola soy nuevo con OCTAVE y tengo una matriz de 800k lineas por 9 columnas, estoy practicando con una matriz pequeña de ejemplo para después aplicarlo a la grande. Por ejemplo tengo estas matriz y debo recorrerla de manera que si en la primera columna hay un 0, debo analizar la 2da columna: si hay un 1 SUMAR a un acumulador lo que esté en la 3ra, y si hay un 2 RESTAR al acumulador lo que esté en la 3ra columna y la verdad no tengo idea como hacerlo. Desde ya muchas gracias
col1 col2 col3
0 1 22
0 1 6
0 2 53
0 2 18
1 1 16
0 1 1
0 1 276
0 1 159
0 1 5
4 2 12
0 2 1
0 2 283
6 2 182
0 1 304
0 1 98
0 1 6
8 2 255
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

recorrer matriz

Publicado por Jon (161 intervenciones) el 30/04/2021 11:39:21
Buenos días Rodrigo,

No sé si he entendido bien el problema, pero yo haría algo así.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
%% Datos
M = [	0 1 22
        0 1 6
        0 2 53
        0 2 18
        1 1 16
        0 1 1
        0 1 276
        0 1 159
        0 1 5
        4 2 12
        0 2 1
        0 2 283
        6 2 182
        0 1 304
        0 1 98
        0 1 6
        8 2 255];
 
%% Programa
[nRow, ~] = size(M);
j = 1;
for i = 1 : nRow
    if (M(i,1) == 0)
        if (M(i,2) == 1)
            Acumulador(j) = M(i,3) + 1;
            j = j + 1;
        elseif (M(i,2) == 2)
            Acumulador(j) = M(i,3) + 2;
            j = j + 1;
        end
    end
end
 
%% Resultados
fprintf('Acumulador = \n\n');
disp(Acumulador);

Un saludo,

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