I keep getting x as a single value output instead of an array of 14values..

2 Ansichten (letzte 30 Tage)
below are my codes: i would like to obtain an array for 14values for my x but i keep getting a single value output for x instead. Can anyone kindly advise on where have i gone wrong here?
a=0.5483 b=0.3941 c=0.9837
wl=200:100:1500 k1=0.5543 k2=0.4212 k3=0.4531
x=((1+((a.*(wl).^2)/(((wl).^2)-((k1)^2)))+((b.*(wl).^2)/(((wl).^2)-((k2)^2)))+(c.*((wl).^2)/(((wl).^2)-((k3)^2))))).^0.5

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 25 Aug. 2015
Replace / by ./
x=((1+((a.*(wl).^2)./(((wl).^2)-((k1)^2)))+((b.*(wl).^2)./(((wl).^2)-((k2)^2)))+(c.*((wl).^2)./(((wl).^2)-((k3)^2))))).^0.5

Weitere Antworten (1)

Jan
Jan am 27 Okt. 2015
By the way: An optical simplification of the code can decrease the debug time:
wl_2 = wl .^ 2;
x = sqrt(1 + (a .* wl_2 ./ (wl_2 - k1^2)) + ...
(b .* wl_2 ./ (wl_2 - k2^2)) + ...
(c .* wl_2 ./ (wl_2 - k3^2)))
Just some spaces, removing unneeded parenthesis and a temporary variable.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by