matlab中的solve函数可以和for函数一起用吗?因为有五个式子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中的solve函数可以和for函数一起用吗?因为有五个式子相关的知识,希望对你有一定的参考价值。

matlab用solve解方程时,是可以与for循环套用的,每循环一次,解一个或一组方程。如:
x=-3:2:5;
m=length(x);
for k=1:m
syms b K
a=x(k);
s=a+b*1i;
G=((2*s^2+s+1)*exp(-s))/(s^3+s^2+5*s);
G1=imag(G);
G2=real(G);
s=sprintf('第%d次计算',k);
disp(s)
[K,b]=solve(1+K*G2==0,G1==0,'K','b')
end
运行结果:
第1次计算
K =
0.10268582850871938239489373227825
b =
0
第2次计算
K =
0.91969860292860580398880942540365
b =
0
第3次计算
K =
-4.7569931998033291618805030748672
b =
0
第4次计算
K =
-46.561926503753229763061591471985
b =
0
第5次计算
K =
-463.79112219555188569098618762673
b =
0
参考技术A 可以一起用,但要注意用法。
如果solve的参数是字符串,需要注意把循环控制变量转换为字符串;或者换用符号表达式的方式调用solve函数。

加权 Lucas Kanade - 高斯函数 MATLAB

【中文标题】加权 Lucas Kanade - 高斯函数 MATLAB【英文标题】:Weighted Lucas Kanade - Gaussian Function MATLAB 【发布时间】:2013-12-12 00:50:48 【问题描述】:

我在 Matlab 中实现了基本 Lucas Kanade 光流算法。 我使用了***的算法。

由于我想改进这个基本光流算法,我尝试添加一个加权函数,使邻近区域中的某些像素更重要或更不重要(另请参见***)。

我基本上为街区中的每个像素和中心像素本身计算了以下内容。

for: Center Pixel and every neighbourhood-pixel
sigma = 10;
weight(s) = (1/(2*pi*sigma^2)) * exp(-((first-x)^2+(second-y)^2)/(2*sigma^2))

x,y 是中心点像素,它始终保持不变。 first,second 是当前的邻域像素 由于我使用的是 5x5 邻域,因此 (first-x) 或 (second-y) 将始终是以下之一:“0,1,-1,2,-2”


然后我在总和的每个部分应用权重值。


问题: 使用 Sigma = 10 时,我没有得到比没有加权功能更好的光流结果。 使用更小的 Sigmas 并不是更好。 毕竟输出向量有无高斯函数没有区别

有没有办法改进这个高斯函数,使向量实际上比没有加权时更准确?

非常感谢。

【问题讨论】:

【参考方案1】:

我不确定您如何应用这些值,但通常应该会有所不同。

为了获得更好的光流,您可以: - 用高斯平滑图像 - 使用时空 Lucas-Kanade 方法 - 或者使用更高级的算法

【讨论】:

以上是关于matlab中的solve函数可以和for函数一起用吗?因为有五个式子的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 中如何用solve函数解数目不定的方程组???

MATLAB中关于solve函数的用法

matlab的solve函数得不到数值解

MATLAB中solve函数最多解多少个方程

matlab的solve用法

matlab solve函数的用法