我想在matlab中创建一个色彩映射表.我想根据像素的灰度级淡化颜色.
例如:
from 255 to 160 -> white
from 159 to 120 -> pink
from 119 to 50 -> brown
from 49 to 0 -> dark
Run Code Online (Sandbox Code Playgroud) 正如指出的这个答案由山姆·罗伯茨和由gnovice这对方的回答,MATLAB的冒号运算符(start:step:stop)创造价值的在用不同的方式矢量linspace一样.Sam Roberts特别指出:
冒号运算符将增量添加到起始点,并从结束点减去减量以达到中间点.这样,它确保输出向量尽可能对称.
但是,有关The MathWorks的官方文档已从其网站中删除.
如果Sam的描述是正确的,步长中的错误不会是对称的吗?
>> step = 1/3;
>> C = 0:step:5;
>> diff(C) - step
ans =
1.0e-15 *
Columns 1 through 10
0 0 0.0555 -0.0555 -0.0555 0.1665 -0.2776 0.6106 -0.2776 0.1665
Columns 11 through 15
0.1665 -0.2776 -0.2776 0.6106 -0.2776
Run Code Online (Sandbox Code Playgroud)
关于冒号运算符的有趣事项:
它的值取决于它的长度:
>> step = 1/3;
>> C = 0:step:5;
>> X = 0:step:3;
>> C(1:10) - X
ans =
1.0e-15 *
0 0 0 0 0 …Run Code Online (Sandbox Code Playgroud)我已经针对这个问题修改了Comparing FFT of Function to Analytical FT Solution in Matlab 中的代码。我正在尝试执行 FFT 并将结果与Wikipedia 表中的分析表达式进行比较。
我的代码是:
a = 1.223;
fs = 1e5; %sampling frequency
dt = 1/fs;
t = 0:dt:30-dt; %time vector
L = length(t); % no. sample points
t = t - 0.5*max(t); %center around t=0
y = ; % original function in time
Y = dt*fftshift(abs(fft(y))); %numerical soln
freq = (-L/2:L/2-1)*fs/L; %freq vector
w = 2*pi*freq; % angular freq
F = ; %analytical solution
figure; …Run Code Online (Sandbox Code Playgroud) Matlab中有一个名为linspace的函数,它会在给定范围内分割间隔。例如:
>> x = linspace(-10,5, 10)
x =
-10.0000 -8.3333 -6.6667 -5.0000 -3.3333 -1.6667 0 1.6667 3.3333 5.0000
Run Code Online (Sandbox Code Playgroud)
如何通过手工计算找到x(4)?