Matlab:结构数组的字段名称无效

时间:2013-03-05 00:19:18

标签: matlab

基本上,我的程序应该接受以选民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转换为字符串,并且不明白为什么它不起作用。

1 个答案:

答案 0 :(得分:6)

来自Matlab's struct reference page:

字段 - 字段名称

的字符串

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

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

strcurrid = ['id', num2str(currid)];