[解決済み] MATLAB関数のいくつかの戻り値をエレガントに無視する方法
質問
関数から「n 番目」の返り値を得るのに、全ての関数に対してダミー変数を作成する必要はありますか?
n-1
の戻り値のダミー変数を作成することなく、関数から「n番目の」戻り値を得ることは可能でしょうか?
例えば、MATLABで以下のような関数があったとします。
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
ここで、私が興味があるのは 第三 の戻り値だけに興味があるとします。これは、1つのダミー変数を作成することで実現できます。
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
しかし、これはなんというか 醜い . のどれかのようなことができるかもしれないと思うのですが、できないのです。
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
このような エレガント な方法はありますか?
今のところ、最良の解決策は、単純に
variableThatIWillUse
をダミー変数として使用することです。これによって、ワークスペースを汚染する(あるいはクリアする必要がある)本物のダミー変数を作成する必要がなくなりました。要するに、解決策は
variableThatIWillUse
を使うことです。それ以降の戻り値は単に無視することができます。
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
私はこれが非常に醜いコードであると今でも思っています。
どのように解決するのですか?
これは多少ハックされていますが、動作します。
まずは簡単なサンプル関数です。
Func3 = @() deal(1,2,3);
[a,b,c]=Func3();
% yields a=1, b=2, c=3
さて、ここで重要なのは、もしあなたが変数 を2回 を複数式の代入の左辺で使用すると、先の代入が後の代入に邪魔されるということです。
[b,b,c]=Func3();
% yields b=2, c=3
[c,c,c]=Func3();
% yields c=3
(念のため、このテクニックが
[mu,mu,mu]=polyfit(x,y,n)
から気になることがあれば
polyfit
が3番目の引数である場合)。
もっと良い方法があります。 ManWithSleeveの回答 を参照してください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例