0

イメージをプロットし、ファイルに出力するかどうかをユーザーに尋ね、(もしそうなら) これを行う簡単なスクリプトを MATLAB で作成しようとしています。ただし、print()関数で奇妙なエラーが発生しました。これが私のコードです:

plot(X, Y, 'red');

choice = input('Do you want to print to file this 2D image ? [y/n] ', 'y');

if(choice=='Y' || choice=='y')
{
    print(hFig, '-dpng', strcat(filename, '.png'));
}

if実行中の場合、次のエラーでステートメント内で停止します。

エラー ==> 161 で印刷 err.message='';

??? "C:\Programmi\MATLAB\R2010a\toolbox\matlab\graphics\print.m>print" への呼び出し中に、出力引数 "varargout" (およびおそらくその他) が割り当てられません。

エラー ==> istogramma at 30 print(hFig, '-dpng', strcat(filename, '.png'));

このエラーが発生する理由と、これを回避する方法を教えてください。

4

2 に答える 2

4

あなたのifコードは、MATLAB では奇妙に思わ{れ、コードの構造化ではなく、セル配列とセル配列のインデックス付けに使用されます。さらに、 の 2 番目の引数は、あなたが持っているものではなく、 でなければなりません。}{}input's''y'

固定コード:

choice = input('Do you want to print to file this 2D image ? [y/n] ', 's');

if(choice=='Y' || choice=='y')
    print(hFig, '-dpng', strcat(filename, '.png'));
end

編集:ユーザーが 'y'、'Y'、'n' または 'N' で応答するまで尋ね続けるには:

choice = '';
while ~ismember(choice, {'y', 'Y', 'n', 'N'})
    choice = input('Do you want to print to file this 2D image ? [y/n] ', 's');
end

if(choice=='Y' || choice=='y')
    print(hFig, '-dpng', strcat(filename, '.png'));
end
于 2012-05-17T12:04:35.973 に答える
0

とても紛らわしい!print コマンドには出力引数がありません!!!

はっきりとはわかりませんが、まずhFigの割り当てを確認すると思います。あなたが使用することができます

hFig=figure;
plot(X, Y, 'red');
% ...

フィギュアを作成し、その中に好きなものを描きたい場合。出力引数が割り当てられていないというエラーが表示されるため、「ファイル名」を確認するか、使用できます

[filename '.png'] 

代わりは。

これがお役に立てば幸いです。現在、私は MATLAB を持っていないため、テストすることはできません。

PS:これを参照してください:なぜエラー「???」が表示されるのですか?‹function› の呼び出し中に、出力引数 ‹variable› (およびおそらくその他の引数) が割り当てられていません。?

于 2012-05-17T11:46:19.457 に答える