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)

 Akzeptierte Antwort

Kojiro Saito
Kojiro Saito am 2 Jun. 2026

0 Stimmen

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Version

R2026a

Community Treasure Hunt

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

Start Hunting!