matlab输出未知量的解,matlab 怎么输入未知量并反求

匿名用户

1级

2013-08-12 回答

先建立函数m文件

function K=core_matrix(A,rbf_var)

[m,n]=size(A);

for i=1:m

for j=1:n

K(j,i) = exp(-norm(A(i,:)-A(j,:))^2/rbf_var);

end

end

主窗口可以这样来计算

>> A=[1,2,3,4;5,6,7,8;9,3,5,7;8,6,4,2]

A =

1 2 3 4

5 6 7 8

9 3 5 7

8 6 4 2

>> r=core_matrix(A,0.5) %当rbf_var=0.5时

r =

1.0000 0.0000 0.0000 0.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

0.0000 0.0000 0.0000 1.0000

追问:

你好,我刚给你发了个信件 ,看下吧。主要这个核函数的参数值rbf-var 对于我来说是未知的,我就是通过相似性度量求它的。你给出的r是?当rbf_var=0.5时 ,0.5 是经验值么? 太谢谢帮助 小女子不胜感激

追答:

重新建立了函数求rbf_var

function [rbf_var,fval]=core_matrix(A)

[m,n]=size(A);

B_G=eye(m); %理想核函数的Gram矩阵

syms rv;

for i=1:m

for j=1:m

K(j,i) = exp(-norm(A(i,:)-A(j,:))^2/rv);

end

end

D=K-B_G;

Dist=sum(sum(D.*D));

Fun_Dist=eval(['@(rv)',vectorize(char(Dist)),';']);

[rbf_var,fval]=fminsearch(Fun_Dist,1);

主窗口中

>> A=[1,2,3,4;5,6,7,8;9,3,5,7;8,6,4,2]

A =

1 2 3 4

5 6 7 8

9 3 5 7

8 6 4 2

>> [r,f]=core_matrix(A)

r =

0.0500

f =

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值