生成一段能实现输入波长就可以转化为RGB值的完整matlab代码
时间: 2024-05-10 15:19:20 浏览: 151
以下是一个简单的 Matlab 代码实现,可以将输入的波长转换为相应的 RGB 值:
```matlab
function rgb = wavelengthToRGB(lambda)
% WAVELENGTHTORGB Convert wavelength (nm) to RGB color.
% rgb = WAVELENGTHTORGB(lambda) converts a given wavelength in nanometers
% to an RGB color. The input wavelength should be a scalar value.
% Convert wavelength to frequency
c = 299792458; % Speed of light in m/s
lambda_m = lambda * 1e-9; % Convert nm to meters
f = c / lambda_m; % Frequency in Hz
% Calculate RGB values
if f >= 405e12 && f < 420e12 % violet
rgb = [0.5 0 1];
elseif f >= 420e12 && f < 440e12 % blue
rgb = [0 0 1];
elseif f >= 440e12 && f < 490e12 % cyan
rgb = [0 1 1];
elseif f >= 490e12 && f < 510e12 % green
rgb = [0 1 0];
elseif f >= 510e12 && f < 580e12 % yellow
rgb = [1 1 0];
elseif f >= 580e12 && f < 645e12 % orange
rgb = [1 0.5 0];
elseif f >= 645e12 && f < 700e12 % red
rgb = [1 0 0];
else % infrared
rgb = [0.5 0 0];
end
end
```
使用方法:将以上代码保存为一个 `.m` 文件,在 Matlab 中运行该函数并输入波长值即可,例如:
```matlab
wavelengthToRGB(500) % 输出 [0 1 0],表示绿色
```
阅读全文