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

조회 수: 18 (최근 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 CenterFile Exchange에서 プログラミング에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!