titulo - ¿Cómo mostrar(imprimir) el vector en Matlab?
titulo grafica matlab (6)
Tengo un vector x = (1, 2, 3)
y quiero mostrarlo (imprimir) como Answer: (1, 2, 3)
.
He intentado muchos enfoques, incluyendo:
disp(''Answer: '')
strtrim(sprintf(''%f '', x))
Pero todavía no puedo imprimirlo en el formato que necesito.
¿Alguien podría indicarme la solución, por favor?
EDITAR: Ambos valores y (longitud de) x
no se conocen de antemano.
Aquí hay otro enfoque que aprovecha la función de strjoin
de Matlab. Con strjoin
es fácil personalizar el delimitador entre valores.
x = [1, 2, 3];
fprintf(''Answer: (%s)/n'', strjoin(cellstr(num2str(x(:))),'', ''));
Esto resulta en: Answer: (1, 2, 3)
Aquí hay una solución más generalizada que imprime todos los elementos de x el vector x en este formato:
x=randperm(3);
s = repmat(''%d,'',1,length(x));
s(end)=[]; %Remove trailing comma
disp(sprintf([''Answer: ('' s '')''], x))
Para imprimir un vector que posiblemente tenga números complejos
fprintf(''Answer: %s/n'', sprintf(''%d '', num2str(x)));
Prefiero lo siguiente, que es más limpio:
x = [1, 2, 3];
g=sprintf(''%d '', x);
fprintf(''Answer: %s/n'', g)
que salidas
Answer: 1 2 3
Puedes usar
x = [1, 2, 3]
disp(sprintf(''Answer: (%d, %d, %d)'', x))
Esto resulta en
Answer: (1, 2, 3)
Para vectores de tamaño arbitrario, puede utilizar
disp(strrep([''Answer: ('' sprintf('' %d,'', x) '')''], '',)'', '')''))
Una forma alternativa sería
disp(strrep([''Answer: ('' num2str(x, '' %d,'') '')''], '',)'', '')''))
Usted podría intentar de esta manera:
fprintf(''%s: (%i,%i,%i)/r/n'',''Answer'',1,2,3)
Espero que esto ayude.