0

基本上,我的程序应该接受投票,通过选民 id 的名称保存,直到输入秘密 id,此时它将显示 id。它必须保存为结构数组。这是我到目前为止所得到的:

secretid = 123456789;
currid = 0;
while currid ~= secretid
  currid = input('Enter your id:');
  if currid == secretid
    votedata
    break
  else
    strcurrid = num2str(currid);
    vote = input('Enter your vote:', 's');
    votedata = struct(strcurrid, vote);
  end
end

根据 Matlab 的说法,字段名称无效 - 它必须保存为字符串,但我不明白,我将 currid 转换为字符串,不明白为什么它不起作用。

4

1 回答 1

6

来自Matlab 的结构参考页:

field - 字段名称

细绳

字段名称,指定为字符串。有效的字段名称以字母开头,并且可以包含字母、数字和下划线。字段名称的最大长度是 namelengthmax 函数返回的值。

我建议在您的 id 开头添加一个虚拟字母,或者仅使用:

strcurrid = ['id', num2str(currid)];
于 2013-03-05T02:26:42.747 回答