S-Function をバス セレクターとして動作させる方法を知りたいです。s-function への入力として与えられる構造体があります。この構造には 283 個の要素があり (将来的にはさらに増える可能性があります)、バスとして提供されています。s-function が構造体の個々の要素を出力するようにします (したがって、バス セレクターのように動作します)。もちろん、手動入力でこれを簡単に行うことができます:
y0[0]=u0->arguemtn;
y0[0]=u0->speedx; % and so on till 283
しかし、すべての構造要素の名前を知る必要があり、それらを手動で入力する必要もあります。単純な for ループを使用して、個々の要素の入力を s-function の出力に割り当てるだけの方法はありますか。
私はここで立ち往生しているので、ヒントを教えてください
アップデート
提案された答えの後、私はこのようなものを書き込もうとしました。
int number_of_elements,i;
char field_name;
number_of_elements= mxGetNumberOfFields(u0[0]);
for(i=0;i<number_of_elements;i++)
{
field_name=mxGetFieldNameByNumber(u0[0], i);
yi[0]=u0->field_name;
}
しかし、最初に、ループの一部として y1 y2 y3 などを作成するにはどうすればよいですか。もちろん、まったく別の変数なので、yi を書くことはできません。また、s-function builder の Code Description 部分に書いたこの部分もまた間違っていると思います。誰かが私が正確に何をすべきかを私に提案できますか.
別の重要な点は、異なるデータ型 (uint8、uint16、single など) のフィールドを含む構造体を送信しているため、入力データ型も決定する必要があることです。どうすればそれが可能になり、このデータ型をループ内の出力に設定することができますか?