Matlab - Estructura 3D

 
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

Estructura 3D

Publicado por Jon (161 intervenciones) el 03/11/2020 16:54:41
Hola a todos,

Necesito leer varias hojas de un Excel y crear una estructura 3D: M(row, col, page).

Como prueba, quiero obtener una matriz de 10 filas, 3 columnas y 6 "páginas". En todas las páginas se escribirán los mismos datos.

Estoy intentando de la siguiente manera, pero el resultado es una estructura vacía.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%% Data
Data_Excel_01 = (1:10)';                                    % Excel data 1st column
Data_Excel_02 = (11:20)';                                   % Excel data 2nd column
Data_Excel_03 = (21:30)';                                   % Excel data 3rd column
Vg = [690 900 1375 2110 2850 3300];                         % Grid voltage
%% Preallocation
row = length(Data_Excel_01);                                % Number of rows of each sheet
col = 1;                                                    % Number of columns of each sheet
page = length(Vg);                                          % Number of sheets of each file
d = cell([row y page]);                                     % 3D matrix dimension
WTelec = struct('Var1',d,'Var2',d,'Var3',d);                % 3D matrix preallocation
%% Allocation (???)
for i_Vg = 1 : length(Vg)
    WTelec(1,1,i_Vg).Var1	= Data_Excel_01;
    WTelec(2,2,i_Vg).Var2	= Data_Excel_02;
    WTelec(3,3,i_Vg).Var3	= Data_Excel_03;
end

Os agradezco mucho la ayuda.

Un saludo,
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Estructura 3D

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 03/11/2020 23:02:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%% Data
clear
Data_Excel_01 = (1:10)';                                    % Excel data 1st column
Data_Excel_02 = (11:20)';                                   % Excel data 2nd column
Data_Excel_03 = (21:30)';                                   % Excel data 3rd column
Vg = [690 900 1375 2110 2850 3300];                         % Grid voltage
%% Preallocation
y=round(50*rand);
row = length(Data_Excel_01);                                % Number of rows of each sheet
col = 1;                                                    % Number of columns of each sheet
page = length(Vg);                                          % Number of sheets of each file
d = cell(row, y, page);                                     % 3D matrix dimension
WTelec = struct('Var1',d,'Var2',d,'Var3',d);                % 3D matrix preallocation
%% Allocation (???)
for i_Vg = 1:length(Vg)
    WTelec(1,1,i_Vg).Var1	= Data_Excel_01;
    WTelec(2,2,i_Vg).Var2	= Data_Excel_02;
    WTelec(3,3,i_Vg).Var3	= Data_Excel_03;
end


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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
>> WTelec(1,1,:).Var1
 
ans =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
 
 
ans =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
 
 
ans =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
 
 
ans =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
 
 
ans =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
 
 
ans =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
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 Jon
Val: 354
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Estructura 3D

Publicado por Jon (161 intervenciones) el 04/11/2020 08:13:17
Buenas Jose,

Lo siento. Había una errata en mi código, pero te has dado cuenta ;)

1
d = cell(row, col, page);

Es verdad que con mi código consigo justo lo que deseo, pero como en el Workspace no veía nada, pensaba que la estructura estaba vacía.

¡Muchas gracias!

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