小编sci*_*aks的帖子

MATLAB曲线拟合,指数与线性

我有一组数据,在绘制时,看起来像这样.

http://s12.postimg.org/7ja47a6b1/temp.jpg

我需要使用该polyfit命令来确定大致在1.7和之间的时间的最佳拟合指数2.3.我还必须将这种指数拟合与简单的线性拟合进行比较.

我给出了等式Temp(t) = Temp0 * exp(-(t-t0)/tau),其中t0是与温度相对应的时间Temp0(我可以选择从哪里开始曲线拟合,但它必须限制在大约介于1.7和2.3之间的区域).这是我的尝试.

% Arbitrarily defined starting point
t0 = 1.71;

%Exponential fit
p = polyfit(time, log(Temp), 1)
tau = -1./p(1)
Temp0 = exp(p(2))

tm = 1.8:0.01:2.3;
Temp_t = Temp0*exp(-(tm)/tau);
plot(time, Temp, tm, Temp_t)

figure(2)

%Linear fit
p2 = polyfit(time, Temp, 1);
Temp_p = p2(1)*tm + p2(2);
plot(time, Temp, tm, Temp_p)
Run Code Online (Sandbox Code Playgroud)

我的指数最终看起来像 指数拟合.我的线性拟合看起来像线性拟合.(几乎相同).我做错了什么?两者是否应该如此相似?我被告知circshift可能有所帮助,但在阅读帮助文件后我无法掌握命令的适用性.

matlab curve-fitting

7
推荐指数
1
解决办法
1万
查看次数

在MATLAB中创建图像堆栈

我在MATLAB中导入了一组图像,并将它们转换为灰度图像.我现在必须创建一个图像堆栈,"灰度图像的3D矩阵".在此之后,我必须通过采用"图像堆栈的每一层的双重均值"来创建一维图像强度阵列.这是我到目前为止的代码(我只导入了几张图片):

for i=139:141

string2 = num2str(i);

% Concatenate several strings, produce file name
str = [string, string2, string3];

% Read image
a = imread(str);

% Get image dimensions
size(a)

% Convert to grayscale
b = rgb2gray(a);
Run Code Online (Sandbox Code Playgroud)

'size(a)'产量'1728 x 2592 x 3'.这适用于所有图像.我想知道如何创建灰度图像的3D矩阵,我想知道如何创建上面提到的一维图像阵列.我假设,也许是错误的,"双重均值"的意思

mean(mean(...)).
Run Code Online (Sandbox Code Playgroud)

对于3D矩阵,我有

% Pre-allocate 3D matrix
ImStack = zeros(1728, 2592, 3, class(b));

% Add images to ImStack
ImStack(:,:,1) = b;
Run Code Online (Sandbox Code Playgroud)

这是我在MathWorks帮助论坛上找到的模板,

b =零(2000,2000,number_of_images,class(a));

b(:,:,1)= a;

但是,我不确定如何继续创建一维图像强度阵列.非常感谢您的建议.谢谢.

matlab image-processing

1
推荐指数
1
解决办法
3813
查看次数

标签 统计

matlab ×2

curve-fitting ×1

image-processing ×1