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

0 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
Run Code Online (Sandbox Code Playgroud)

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

Ded*_*raz 6

来自Matlab的结构参考页面:

字段 - 字段名称

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

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

strcurrid = ['id', num2str(currid)];
Run Code Online (Sandbox Code Playgroud)