2つのフィールドを持つ構造体があり、この構造体をscilabの関数に渡します。呼び出された関数でこの構造の要素にアクセスするにはどうすればよいですか?
%Scilabコンソール S = struct( 'day'、30、 'month'、 'may'); fun(S); %呼び出された関数 function fun(element) fields = fieldnames(element); disp(element.fields(1)); disp(element.fields(2)); 終末機能;
私は少し違った方法で試しました
disp(element.(fields(1)));
disp(element.(fields(2)));
'()'を '{}'と '[]'に変更しましたが、必要な出力が得られませんでした
これを行う方法はありますか?
よろしくお願いします=)
を使用しgetfield
て、名前でフィールドを抽出できます。返されたすべてのフィールド名を反復処理すると、すべてのフィールドfieldnames
を取得できます。以下の例を参照してください。
function fun(element)
fields=fieldnames(element);
for i=1:length(fields(1,:))-1
fieldname = fields(i)
fielddata = getfield(fields(i), element)
printf('%s: %s\n', string(fieldname), string(fielddata))
end
endfunction;
構造体のフィールド名がわかっている場合は、それらを直接呼び出すことができます。
function fun2(date_struct)
printf('day: %s\n', string(date_struct.day))
printf('month: %s\n', string(date_struct.month))
endfunction
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加