Matlab - Ayuda MatLab

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

Ayuda MatLab

Publicado por Anonymus (1 intervención) el 20/03/2019 12:28:59
Buenos días, necesito hacer un algoritmo que a partir de 3 vectores (palabras por ejemplo) vaya tomando una a una las letras de cada palabra y juntarlas en un nuevo vector. Por ejemplo:
Palabra 1: hola
Palabra 2: como
Palabra 3: estas

Palabra final: hceooslmtaoas

Es para simular una multiplexación.

Dejare el código de lo que tengo por ahora, la idea es luego graficar esa palabra en binario.

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
clear;
clc;
clf();
 
a=input('Ingrese la primera palabra o frase: ','s');
a1=dec2bin(a,8)';
class(a1);
a1=a1(:)'-'0';
a2=mat2str(a1)
length(a1)
a3=str2num(a2)
 
b=input('Ingrese la segunda palabra o frase: ','s');
b1=dec2bin(b,8)';
class(b1);
b1=b1(:)'-'0';
b2=mat2str(b1)
length(b1)
b3=str2num(b2)
 
c=input('Ingrese la tercera palabra o frase: ','s');
c1=dec2bin(c,8)';
class(c1);
c1=c1(:)'-'0';
c2=mat2str(c1)
length(c1)
c3=str2num(c2)
%jmax=length(a3)+length(b3)+length(c3);
 
%d=[];
%for j=i
%    for i=1:8:jmax
%        d(j)=a3(i);
%        d(j+1)=b3(i);
%        d(j+2)=c3(i);
%    end
%end
%d(1)
 
figure(1);
subplot(3,1,1);
ASK(a1,length(a1));
title('Modulación ASK frase 1');
 
subplot(3,1,2);
ASK(b1,length(b1));
title('Modulación ASK frase 2');
 
subplot(3,1,3);
ASK(c1,length(c1));
title('Modulación ASK frase 3');
 
function ASK(g,f)
%Modulacion ASK
if nargin > 2
    error('Demasiados argumentos de entrada')
elseif nargin==1
    f=1;
end
if f<1;
    error('Frecuencia debe ser mayor que 1');
end
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];
for n=1:length(g);
    if g(n)==0;
        die=ones(1,100);
        se=zeros(1,100);
    else g(n)==1;
        die=2*ones(1,100);
        se=ones(1,100);
    end
    c=sin(f*t);
    cp=[cp die];
    mod=[mod c];
    bit=[bit se];
end
ask=cp.*mod;
%subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;
%title('Señal Binaria');
%axis([0 100*length(g) -2.5 2.5]);
%subplot(2,1,2);
plot(ask,'LineWidth',1.5);grid on;
%title('Modulación ASK');
axis([0 100*length(g) -2.5 2.5]);
end

De ante mano, muchas gracias.
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
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda MatLab

Publicado por Daniel (354 intervenciones) el 21/03/2019 09:35:28
Hola,

Es importante tener en cuenta que las palabras pueden tener una longitud diferente. Primero es necesario importar las palabras y después se procesas. Ubicando las palabras en una celda se puede conseguir el resultado con

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
words = {'hola', 'como', 'estas'};
 
% Longitud de la palabra más larga
maxLength = max(cellfun(@length, words));
 
% Número de palabras
numWords = length(words);
 
% Vector de blancos numero de palabras por longitud
result = repmat(' ', 1, numWords * maxLength);
 
for i = 1:numWords
    % Cada numWords caracteres se situa una letra en el resultado
    pos = 1:numWords:length(words{i})*numWords;
 
    % la palabra 1 comienz en 1, la segunda en 2, ...
    result((i-1) + pos) = words{i};
end

Saludos,
Daniel Rodríguez.
Analytics Lane
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