/ / Combina respuestas múltiples en variables en octava - octava

Combina múltiples respuestas en variable (s) en octava - octava

Considerar:

textscan("5,6,7", "%s", "Delimiter",","){1}{1:3}
ans = 55
ans = 66
ans = 77

¡Excelente! Ahora quiero esas tres respuestas en diferentes variables, o alguna estructura con la que pueda hacer las cosas.

Así que intento:

X = textscan("55,66,77", "%s", "Delimiter",","){1}{1:3}
X = 55

Sólo un valor.

Así que intento:

X = [textscan("55,66,77", "%s", "Delimiter",","){1}{1:3}] "
X = 556677

Se convirtió en una cadena.

Así que intento:

X Y Z = textscan("55,66,77", "%s", "Delimiter",","){1}{1:3}
^
syntax error

Debe haber alguna forma de manejar respuestas múltiples ... pero ¿cómo?

Respuestas

2 para la respuesta № 1

Esta pregunta originalmente se formuló erróneamente sobre MATLAB, mientras que se trata de Octave.

La respuesta a la pregunta, como @excaza escribió en los comentarios es:

[a, b, c] = textscan("5,6,7", "%d%d%d", "Delimiter", ","){:};

La primera respuesta que escribí para uso de MATLAB es esta:

Necesitas definir tres salidas separadas dentro textscan:

a = textscan("5,6,7", "%s%s%s", "Delimiter", ",");
[b, c, d] = a{:}

b =
"5"
c =
"6"
d =
"7"

Si desea la salida como números y no como texto, puede usar %d:

a = textscan("5,6,7", "%d%d%d", "Delimiter", ",");
[b, c, d] = a{:}

b =
5
c =
6
d =
7