在Octave中将多个答案组合成变量

时间:2017-03-22 12:14:03

标签: octave

考虑:

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

出色!现在我希望这三个答案在不同的变量中,或者我可以用一些结构来做。

所以我试试:

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

只有一个值。

所以我试试:

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

它把它变成了一个字符串。

所以我试试:

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

必须有某种方法来处理多个答案......但是如何处理?

1 个答案:

答案 0 :(得分:2)

这个问题最初被错误地问及关于MATLAB的问题,而关于Octave。

正如@excaza在评论中所写的那样,问题的答案是:

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

我为MATLAB使用而写的第一个答案是:

您需要在textscan

中定义三个单独的输出
a = textscan('5,6,7', '%s%s%s', 'Delimiter', ',');
[b, c, d] = a{:}

b =
    '5'
c =
    '6'
d =
    '7'

如果您希望输出为数字而不是文本,则可以使用%d

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

b =
      5
c =
      6
d =
      7