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)

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Optical System Design and Analysis 的更多信息

产品

版本

R2026a

Community Treasure Hunt

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

Start Hunting!