5

textscanデータを変数に読み込むために使用する短い関数があります。

私の問題は、私がいつもこれを得るということです:

>>function('function.txt')

    ans = 

        {10x1 cell}    {10x1 cell}    {10x1 cell}    [10x1 double]

関数を呼び出すために使用する行の末尾にセミコロンを追加する以外に、これを抑制する方法はありますか? セミコロンを追加せずに抑制できるようにしたいです。この関数を実行するときに何も表示したくありません。ファイルをロードしたいだけです。

4

3 に答える 3

5

関数の出力引数 (または戻り値) を削除することで、出力を抑制することができます。または を使用してみてください。可変出力数のサポートVariable Number of Outputsを参照してください。

function varargout = foo
    nOutputs = nargout;
    varargout = cell(1,nOutputs);
    for k = 1:nOutputs;
        varargout{k} = k;
    end
end

入力>>fooしても何も得られません。入力>>a=fooして取得し>>a=1ます。入力>>[a,b]=fooして取得し>>a=1 >>b=2ます。

したがって、出力引数を指定しないことで出力を抑制することができます。

于 2013-01-07T04:44:52.117 に答える
4

出力が出力されないようにする最も簡単な方法は、出力引数が要求されていない場合、最初の出力引数を割り当てないことです。

function [aOut,b,c] = doSomething

%# create a,b,c normally
a = 1;
b = 4;
c = 3;

%# only assign aOut if any output is requested
if nargout > 0
   aOut = a;
end
于 2013-01-07T13:35:58.150 に答える
1

機能を使用してみることができdiaryます。コマンドプロンプトからのすべての入力と出力を、選択したファイルにリダイレクトします。特定の機能中にのみオンにする場合、入力はキャプチャされません。日記のオン/オフ状態はmatlabに対してグローバルであるため、少し不器用な解決策であることは認めますが、あなたの場合は問題ないかもしれません。

詳細については、こちらをご覧ください: Diary matlab ヘルプ

于 2013-01-07T08:55:39.910 に答える