Optical System Designer で SemiDiameter を設定できない

「Create Simple Optical System」のページを読みながら、Optical System Designer の練習中です。ところが、教本どおりに記述すれば正しく動きますが、SemiDiameter を設定しようとするとエラーが出ます。
SemiDiameter を RectangleSize に変えてもダメです。どうすれば良いでしょうか?
% xx1.m
clear
close all
opsys = opticalSystem;
% これならOK
addRefractiveSurface(opsys,Radius=15,Material=[1.74 25.4],DistanceToNext=3)
addRefractiveSurface(opsys,Radius=-15,DistanceToNext=6.5)
% 下記ではエラーになる「関数または変数 'SemiDiameter' が認識されません。」
% addRefractiveSurface(opsys,SemiDiameter,5, ...
% Radius=15,Material=[1.74 25.4],DistanceToNext=3)
% addRefractiveSurface(opsys,SemiDiameter,5, ...
% Radius=-15,DistanceToNext=6.5)
% これでもエラーになる「関数または変数 'RectangleSize' が認識されません。」
% addRefractiveSurface(opsys,RectangleSize,[10 10], ...
% Radius=15,Material=[1.74 25.4],DistanceToNext=3)
% addRefractiveSurface(opsys,RectangleSize,[10 10], ...
% Radius=-15,DistanceToNext=6.5)
% 「これならOK」のときに下記で内容を確認しても、「SemiDiameter」の表示が出ない。
%  SemiDiameter デフォルト値であるはずの「5」も、どこにも表示されない。
opsys.Components(1)
addImagePlane(opsys)
rays = traceRays(opsys,Wavelengths=587.5618);
hv = view2d(opsys);
addRays(hv,rays)

 採用された回答

Kojiro Saito
Kojiro Saito 約7時間 前

0 投票

SemiDiameterもRectangleSizeも、「Name, Value」で指定しているため、エラーになっています。「Name=Value」の書き方にすればエラーなく実現できます。
addRefractiveSurface(opsys,SemiDiameter=5, ...
Radius=15,Material=[1.74 25.4],DistanceToNext=3)
addRefractiveSurface(opsys,RectangleSize=[10 10], ...
Radius=15,Material=[1.74 25.4],DistanceToNext=3)

2 件のコメント

KATSUTAKA TSUBOI
KATSUTAKA TSUBOI 約4時間 前
おお、ご指導ありがとうございます。できました。
普通のコマンドのプロパティの設定のつもりでやっていました。それにしては、プロパティ名を「'」で囲んでいないことを不思議には思っていましたが・・・。私の注意不足でした。以後、気を付けます。
Kojiro Saito
Kojiro Saito 約2時間 前
従来からある関数はName, ValueとName=Valueのどちらでもオプションを指定できますが、addRefractiveSurfaceのような新しい関数だとName=Valueのみの指定をサポートしています。私も最初気付きませんでした。

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

その他の回答 (0 件)

カテゴリ

製品

リリース

R2026a

質問済み:

2026 年 6 月 2 日 8:49

コメント済み:

2026 年 6 月 3 日 4:16

Community Treasure Hunt

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

Start Hunting!