ライブスクリプトで一定の行区間を実行する方法

29 ビュー (過去 30 日間)
Yuki Koyama
Yuki Koyama 2021 年 12 月 1 日
コメント済み: Yuki Koyama 2021 年 12 月 1 日
ライブスクリプトで一定の行区間を実行する方法はありますか?
つまり、一定の行区間を別のスクリプトに分けずに実行する方法はありますか?
たとえば、以下のようなコードをabcd.mlxとして保存します。
a=rand;
b=rand;
c=rand;
d=rand;
そして、別のスクリプト上で、
abcd;
と実行すると、abcd.mlxが実行され、変数a,b,c,dがワークスペースに保存されます。
これをスクリプトを分けずに行いたいです。
関数化してもよいのですが、変数が増えると全部を返し値に設定することが大変になるため、関数化しない方法が知りたいです。つまり、指定区間の実行時の変数を全て保持しておきたいということです。

採用された回答

Kojiro Saito
Kojiro Saito 2021 年 12 月 1 日
スクリプトにセクションを区切るのがご要望にあっていると思われます。
ライブスクリプトで「セクション区切り」をクリックして、セクションを分けられます。
セクション毎に「セクションの実行」か「実行して次に進む」でマウスカーソルが置いてあるセクションだけを実行できます。
  3 件のコメント
Kojiro Saito
Kojiro Saito 2021 年 12 月 1 日
セクション2からセクション1の部分を呼び出すことはできないと思います。同じスクリプト内でローカル関数として
function abcd
%
end
で定義するか、abcd.mlxという別のスクリプトにするかが必要になります。
別ののスクリプトにすれば、a~dの変数はメインスクリプトと共有されますが、ローカル関数の場合は共有されません。
function [a,b,c,d] = abcd
a=rand;
b=rand;
c=rand;
d=rand;
end
のようにローカル関数の出力を[a,b,c,d]で定義するか、グローバル変数を使ってメインスクリプトと変数を共有する必要があります。
例:
メインスクリプト
global a b c d
for i=1:10
abcd;
end
ローカル関数
function abcd
global a b c d
a=rand;
b=rand;
c=rand;
d=rand;
end
Yuki Koyama
Yuki Koyama 2021 年 12 月 1 日
詳細なご回答ありがとうございます。
セクションの一部を呼び出すことは現時点ではできないということで承知しました。関数化することといたします。
global変数の使用法は知らなかったため勉強になりました。
いつもご回答ありがとうございます。またよろしくお願いいたします。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange起動と終了 についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!