MATLABの文字列のリストを反復処理しようとしています。問題は、「for」ループ内で、イテレーターが文字列ではなく「セル」と見なされることです。
for str = {'aaa','bbb'}
fprintf('%s\n',str);
end
??? Error using ==> fprintf
Function is not defined for 'cell' inputs.
これを修正する正しい\エレガントな方法は何ですか?
セルのコンテンツを修正するには、次のようにstr{1}
を介してセルのコンテンツを呼び出す必要があります。
for str = {'aaa','bbb'}
fprintf('%s\n',str{1});
end
以下は、セル配列の内容の印刷に関する より洗練された例 です。
str={'aaa','bbb'};
fprintf('%s\n',str{:});
for
ループは不要です。
編集:参照:cellfun
R2016b以降では、 文字列配列 を使用できます。
for str = ["aaa" "bbb"]
fprintf('%s\n',str);
end