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 に答える