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函数一起用吗?因为有五个式子的主要内容,如果未能解决你的问题,请参考以下文章