Matlab - juntar dos matrices para generar una nueva.

 
Vista:

juntar dos matrices para generar una nueva.

Publicado por pablo (5 intervenciones) el 10/12/2015 19:11:55
Hola a todos. Tengo el siguiente problema, teniendo dos matrices llamadas como:

P de 83x3 y R 83x3

Deseo crear una nueva matriz juntando los valores de ambas de la siguiente manera:


for i = 1:1:3

for j = 1:1:83

X(i,j) = [P(i,:), R(i,j)];
end

end

donde la idea es que las 3 columnas de P las junte por separado a cada una de las columnas de R. Sin embargo P contiene solo palabras y R números, trate en transformar R a str, pero aun asi no sucede nada y me arroja el siguiente error:

??? Error using ==> horzcat
CAT arguments dimensions are not consistent.


Agradecería mucho que me pudisen ayudar, Saludos.
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

juntar dos matrices para generar una nueva.

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/12/2015 19:30:55
Debes mostrar de como esta formado los matrices que mencionas, con ejemplos concretos.
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

juntar dos matrices para generar una nueva.

Publicado por pablo (5 intervenciones) el 10/12/2015 19:39:16
R =
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
79.8206   83.3875   79.8206
   79.8206   83.3875   79.8206
   66.7488   68.0753   66.7488
   57.9811   63.6509   57.9811
   57.8904   63.2997   57.8904
   57.2237   62.6480   57.2237
   56.5889   62.4835   56.5889
   56.4810   62.3076   56.4810
   56.4799   61.6542   56.4799
   56.4573   60.8006   56.4573
   55.1817   60.4230   55.1817
   54.6204   60.3126   54.6204
   54.4738   60.1696   54.4738
   54.3812   60.1477   54.3812
   53.7171   59.2569   53.7171
   53.7171   59.0452   53.7171
   53.4754   58.9508   53.4754
   53.3932   58.5772   53.3932
   53.0685   58.5622   53.0685
   53.0443   58.5415   53.0443
   52.7198   58.4608   52.7198
   52.6853   58.2675   52.6853
   52.1037   58.2675   52.1037
   52.0056   58.0068   52.0056
   51.9707   57.8767   51.9707
   51.8034   57.8292   51.8034
   51.6448   57.7348   51.6448
   51.6054   57.4956   51.6054
   51.5855   57.3067   51.5855
   51.5633   57.2695   51.5633
   51.4800   57.2413   51.4800
   51.3528   56.9308   51.3528
   50.8750   56.8729   50.8750
   50.8555   56.6649   50.8555
   50.7968   56.5998   50.7968
   50.7526   56.5290   50.7526
   50.6095   56.2889   50.6095
   50.5172   56.1621   50.5172
   50.1629   56.0232   50.1629
   49.5458   55.8091   49.5458
   49.5250   55.8088   49.5250
   49.3426   55.5132   49.3426
   49.2999   55.3706   49.2999
   49.2358   54.8046   49.2358
   49.2280   54.5514   49.2280
   49.1824   54.4818   49.1824
   49.1750   54.3351   49.1750
   49.0343   54.2830   49.0343
   48.9473   54.0583   48.9473
   48.8191   54.0386   48.8191
   48.7790   54.0057   48.7790
   48.7718   53.9271   48.7718
   48.5782   53.9011   48.5782
   48.5713   53.8928   48.5713
   48.5320   53.8681   48.5320
   48.2693   53.7915   48.2693
   48.1198   53.6898   48.1198
   48.1016   53.5301   48.1016
   47.9422   53.4073   47.9422
   47.8822   53.3673   47.8822
   47.8816   53.2065   47.8816
   47.7682   53.1122   47.7682
   47.3528   53.0496   47.3528
   47.3055   52.6204   47.3055
   47.2782   52.5268   47.2782
   47.2428   52.5181   47.2428
   47.1204   52.1873   47.1204
   47.0685   52.1564   47.0685
   46.9832   51.9483   46.9832
   46.8185   51.8641   46.8185
   46.7230   51.8511   46.7230
   46.5942   51.3022   46.5942
   46.4272   51.1361   46.4272
   45.8690   51.1129   45.8690
   45.8124   51.0583   45.8124
   45.5687   50.7625   45.5687
   45.5159   50.5351   45.5159
   44.3909   49.4616   44.3909
   43.9770   49.2809   43.9770
   43.8886   49.0983   43.8886
   42.8563   48.8335   42.8563
   42.5262   48.5952   42.5262
   42.2546   47.3593   42.2546
 
 
P =
 
    '3M'                               [1x31 char]    'OREJERA'
    '3M'                               [1x21 char]    'AL CASCO'
    '3M'                     'H520AH02'               'OREJERA'
    '3M'                     'MT1H7A2-07 C/S mic.'    'OREJERA'
    '3M'                               [1x21 char]    'OREJERA'
    '3M'                     'X1A'                    'OREJERA'
    '3M'                     'X1P3E'                  'AL CASCO'
    '3M'                     'X3A'                    'OREJERA'
    '3M'                     'X3P3E'                  'AL CASCO'
    '3M'                     'X4A'                    'OREJERA'
    '3M'                     'X4P3E'                  'AL CASCO'
    '3M'                     'X5A'                    'OREJERA'
    '3M'                     'X5P3E'                  'AL CASCO'
    '3M'                     'H31P3E'                 'AL CASCO'
    '3M'                     'HTM79A / HTM79B'        'OREJERA'
    '3M'                     'HTM79P3E/ MT7H79P3E'    'AL CASCO'
    '3M'                     'MT53H7A4600'            'OREJERA'
    '3M'                     'MT53H7B4600'            'OREJERA NUCA'
    '3M'                     'MT53H7E4600'            'OREJERA'
    '3M'                     'MT155H530A'             'OREJERA'
    '3M'                     'MT155H530P3'            'AL CASCO'
    '3M'                               [1x31 char]    'OREJERA'
    '3M'                               [1x31 char]    'OREJERA NUCA'
    '3M'                               [1x33 char]    'AL CASCO'
    '3M'                     'H7P3E'                  'OREJERA'
    '3M'                               [1x32 char]    'OREJERA'
    '3M'                               [1x32 char]    'OREJERA NUCA'
    '3M'                               [1x33 char]    'AL CASCO'
    '3M'                               [1x40 char]    'OREJERA'
    '3M'                               [1x35 char]    'AL CASCO'
    '3M'                                        ''    'TAPÓN R'
    '3M'                     '1270/1271'              'TAPÓN R'
    '3M'                     '1100/1110'              'TAPÓN D'
    '3M'                     'CLASSIC SUPERFIT 33'    'TAPÓN D'
    '3M'                     'CLASSIC  S/CORDÓN'      'TAPÓN D'
    '3M'                     'CLASSIC C/CORDÓN'       'TAPÓN D'
    '3M'                     'ULTRAFIT C/CORDÓN'      'TAPÓN R'
    '3M'                               [1x26 char]    'TAPÓN R'
    'HOWARD LEIGHT'          'Max lite'               'TAPÓN D'
    'HOWARD LEIGHT'          'Laser lite'             'TAPÓN D'
    'HOWARD LEIGHT'          'Matrix orange'          'TAPÓN D'
    'HOWARD LEIGHT'          'Matrix green'           'TAPÓN D'
    'HOWARD LEIGHT'          'Matrix blue'            'TAPÓN D'
    'HOWARD LEIGHT'          'MultiMax'               'TAPÓN D'
    'HOWARD LEIGHT'          'Bilsom 303/304'         'TAPÓN D'
    'HOWARD LEIGHT'          'Quiet'                  'TAPÓN R'
    'HOWARD LEIGHT'          'AirSoft'                'TAPÓN R'
    'HOWARD LEIGHT'          'Fusion'                 'TAPÓN R'
    'HOWARD LEIGHT'          'SmartFit'               'TAPÓN R'
    'HOWARD LEIGHT'          'Bilsom 656 NST'         'TAPÓN R'
    'HOWARD LEIGHT'          'QB1'                    'TAPÓN ARNÉS'
    'HOWARD LEIGHT'          'QB2'                    'TAPÓN ARNÉS'
    'HOWARD LEIGHT'          'QB3'                    'TAPÓN ARNÉS'
    'HOWARD LEIGHT'          'Percap'                 'TAPÓN ARNÉS'
    'HOWARD LEIGHT'          'Thunder T1s'            'OREJERA'
    'HOWARD LEIGHT'          'Thunder T2s'            'OREJERA '
    'HOWARD LEIGHT'          'Thunder T3s'            'OREJERA '
    'HOWARD LEIGHT'          'Clarity C1'             'OREJERA '
    'HOWARD LEIGHT'          'Clarity C1H'            'AL CASCO'
    'HOWARD LEIGHT'          'Clarity C3'             'OREJERA DE NUCA'
    'HOWARD LEIGHT'          'Clarity C3H'            'AL CASCO'
    'HOWARD LEIGHT'          'Impact H'               'AL CASCO'
    'HOWARD LEIGHT'          'Radio'                  'OREJERA Radio'
    'HOWARD LEIGHT'          'Electo H'               'OREJERA DE NUCA'
    'ELVEX'                            [1x20 char]    'OREJERA'
    'STEEL PRO'              'SAMURAI'                'OREJERA'
    'STEEL PRO'              'CM 501'                 'AL CASCO'
    'STEEL PRO'              'AUTOEXPANDIBLE'         'TAPÓN D'
    'STEEL PRO'              'EP-T06C'                'TAPÓN R'
    'STEEL PRO'              'CM 502'                 'OREJERA '
    'STEEL PRO'              'CM-3000'                'AL CASCO'
    'MSA'                    'XLS'                    'OREJERA'
    'MASPROT '               'MPA-101 C'              'OREJERA'
    'AUDITIVE PROTECTION'    'EP-T06'                 'TAPÓN R'
    'HOWARD LEIGHT'          'Viking V2'              'OREJERA'
    'HOWARD LEIGHT'          'Viking V1'              'OREJERA'
    'HOWARD LEIGHT'          'Viking V3'              'OREJERA'
    'MSA'                    'EXC'                    'OREJERA'
    'MSA'                    'HPE'                    'OREJERA'
    'MSA'                    'EXC'                    'AL CASCO'
    'MSA'                    'HPE'                    'AL CASCO'
    'ELVEX'                  'HB-25'                  'OREJERA'
    'HOWARD LEIGHT'          'L1H'                    'AL CASCO'



al copiar los valores de P no se distinguen mucho las 3 columnas pero son 3 columnas y 83 filas.
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

juntar dos matrices para generar una nueva.

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/12/2015 19:48:41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> clear all
P={'jose','pedro','roberto';
    'josdsafe','pedrdfdo','rodffberto';
    'jfdfaose','pdfasfedro','roberdfdsfto';
    'josfgsdfgse','pedfgsdro','robefgsfdgsrto'}
R=round(50*rand(4,3))
 
for i=1:size(P,1)
    for j=1:size(P,2)
        X{i,j} = [P{i,j},' ',  num2str(R(i,j))];
    end
end
X
 
P =
 
    'jose'           'pedro'         'roberto'
    'josdsafe'       'pedrdfdo'      'rodffberto'
    'jfdfaose'       'pdfasfedro'    'roberdfdsfto'
    'josfgsdfgse'    'pedfgsdro'     'robefgsfdgsrto'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
R =
 
    35    33    48
    38     8    17
    14     6    29
    34    25    11
 
 
X =
 
    'jose 35'           'pedro 33'        'roberto 48'
    'josdsafe 38'       'pedrdfdo 8'      'rodffberto 17'
    'jfdfaose 14'       'pdfasfedro 6'    'roberdfdsfto 29'
    'josfgsdfgse 34'    'pedfgsdro 25'    'robefgsfdgsrto 11'
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

juntar dos matrices para generar una nueva.

Publicado por pablo (5 intervenciones) el 10/12/2015 19:58:52
Y no es posible que queden como columnas separadas los valores numericos de lo demas?

X =



'jose' ' '35'

'josdsafe' '38'

'jfdfaose '14'

'josfgsdfgse '34'
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

juntar dos matrices para generar una nueva.

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/12/2015 20:05:37
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
>> clear all
P={'jose','pedro','roberto';
    'josdsafe','pedrdfdo','rodffberto';
    'jfdfaose','pdfasfedro','roberdfdsfto';
    'josfgsdfgse','pedfgsdro','robefgsfdgsrto'}
R=[79.8206 83.3875 79.8206
79.8206 83.3875 79.8206
66.7488 68.0753 66.7488
57.9811 63.6509 57.9811]
 
for i=1:size(P,1)
    k=1;
    for j=1:size(P,2)
        X{i,k} = P{i,j};
        X{i,k+1} = num2str(R(i,j));
        k=k+2;
    end
end
X
 
P =
 
    'jose'           'pedro'         'roberto'
    'josdsafe'       'pedrdfdo'      'rodffberto'
    'jfdfaose'       'pdfasfedro'    'roberdfdsfto'
    'josfgsdfgse'    'pedfgsdro'     'robefgsfdgsrto'
 
 
R =
 
   79.8206   83.3875   79.8206
   79.8206   83.3875   79.8206
   66.7488   68.0753   66.7488
   57.9811   63.6509   57.9811
 
 
X =
 
    'jose'           '79.8206'    'pedro'         '83.3875'    'roberto'           '79.8206'
    'josdsafe'       '79.8206'    'pedrdfdo'      '83.3875'    'rodffberto'        '79.8206'
    'jfdfaose'       '66.7488'    'pdfasfedro'    '68.0753'    'roberdfdsfto'      '66.7488'
    'josfgsdfgse'    '57.9811'    'pedfgsdro'     '63.6509'    'robefgsfdgsrto'    '57.9811'


Saludos .
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
[email protected]
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación en Matlab.
Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
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

juntar dos matrices para generar una nueva.

Publicado por pablo (5 intervenciones) el 10/12/2015 20:33:51
Muchas Gracias!, me resultó.
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

juntar dos matrices para generar una nueva.

Publicado por pablo (5 intervenciones) el 10/12/2015 21:24:17
es posible que el resultado se pudiese seprar de esta manera:

x1

'jose' '79.8206'

'josdsafe' '79.8206'

'jfdfaose' '66.7488'

'josfgsdfgse' '57.9811'

x2

'pedro' '83.3875'

'pedrdfdo' '83.3875'

'pdfasfedro' '68.0753'

'pedfgsdro' '63.6509'

x3

'roberto' '79.8206'

'rodffberto' '79.8206'

'roberdfdsfto' '66.7488'

'robefgsfdgsrto' '57.9811'

ya que cada columna 1 esta ordenada segun la columna 2 que a su vez esta ordenada de mayor a menor
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

juntar dos matrices para generar una nueva.

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/12/2015 21:30:23
Si se puede hacer, pero intenta, pones tus avances y aqui te filtramos tu código.
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