matlab中调用函数,如何知道被调用函数的其他变量的值
有如下代码:function[G,Gval,t]=edgereduce(G,Gval,order,data,t,lamda)iforder==0%计算0阶互信息fori=...
有如下代码:
function [G,Gval,t]=edgereduce(G,Gval,order,data,t,lamda)
if order==0 %计算0阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0 %如果i,j两点间存在连接
cmiv=cmi(data(i,:),data(j,:)); %计算出i,j的条件互信息
Gval(i,j)=cmiv; Gval(j,i)=cmiv; %将条件互信息的值存入Gval中
if cmiv<lamda %如果cmiv小于阈值lamda,则将邻接矩阵图的值置为0
G(i,j)=0;G(j,i)=0;
end
end
end
end
t=t+1;
else %计算高阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0
adj=[] ;
for k=1:size(G,1) %size(G,1)表示基因的个数
if G(i,k)~=0 && G(j,k)~=0
adj=[adj,k] ;
end
end %如果基因k与基因i,j均相邻,则将其放入数组adj中,adj表示邻居节点个数
if size(adj,2)>=order %判断邻居数是否大于阶数
combntnslist=combntns(adj,order); %找出邻居节点的order阶互信息的所有可能组合形式
combntnsrow=size(combntnslist,1); %总的组合个数
cmiv=0;
v1=data(i,:);
v2=data(j,:); %v1是节点i的信息,v2是节点j的信息
for k=1:combntnsrow
vcs=data(combntnslist(k,:),:); %第k种可能组合方式的信息数
a=cmi(v1,v2,vcs) ; %计算出所有的order阶互信息
cmiv=max(cmiv,a); %找出最大的order阶互信息值
end
Gval(i,j)=cmiv; Gval(j,i)=cmiv;
if cmiv<lamda
G(i,j)=0; G(j,i)=0;
end
t=t+1;
end
end
end
end
end
end
我定义个上述的函数,然后在另一个文件中调用这个函数,但是我也想知道这个函数中的v1,v2,vcs的值,请问怎么求解,谢谢! 展开
function [G,Gval,t]=edgereduce(G,Gval,order,data,t,lamda)
if order==0 %计算0阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0 %如果i,j两点间存在连接
cmiv=cmi(data(i,:),data(j,:)); %计算出i,j的条件互信息
Gval(i,j)=cmiv; Gval(j,i)=cmiv; %将条件互信息的值存入Gval中
if cmiv<lamda %如果cmiv小于阈值lamda,则将邻接矩阵图的值置为0
G(i,j)=0;G(j,i)=0;
end
end
end
end
t=t+1;
else %计算高阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0
adj=[] ;
for k=1:size(G,1) %size(G,1)表示基因的个数
if G(i,k)~=0 && G(j,k)~=0
adj=[adj,k] ;
end
end %如果基因k与基因i,j均相邻,则将其放入数组adj中,adj表示邻居节点个数
if size(adj,2)>=order %判断邻居数是否大于阶数
combntnslist=combntns(adj,order); %找出邻居节点的order阶互信息的所有可能组合形式
combntnsrow=size(combntnslist,1); %总的组合个数
cmiv=0;
v1=data(i,:);
v2=data(j,:); %v1是节点i的信息,v2是节点j的信息
for k=1:combntnsrow
vcs=data(combntnslist(k,:),:); %第k种可能组合方式的信息数
a=cmi(v1,v2,vcs) ; %计算出所有的order阶互信息
cmiv=max(cmiv,a); %找出最大的order阶互信息值
end
Gval(i,j)=cmiv; Gval(j,i)=cmiv;
if cmiv<lamda
G(i,j)=0; G(j,i)=0;
end
t=t+1;
end
end
end
end
end
end
我定义个上述的函数,然后在另一个文件中调用这个函数,但是我也想知道这个函数中的v1,v2,vcs的值,请问怎么求解,谢谢! 展开
2个回答
2016-07-29 · 知道合伙人游戏行家
关注
展开全部
有如下代码:
function [G,Gval,t]=edgereduce(G,Gval,order,data,t,lamda)
if order==0 %计算0阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0 %如果i,j两点间存在连接
cmiv=cmi(data(i,:),data(j,:)); %计算出i,j的条件互信息
Gval(i,j)=cmiv; Gval(j,i)=cmiv; %将条件互信息的值存入Gval中
if cmiv<lamda %如果cmiv小于阈值lamda,则将邻接矩阵图的值置为0
G(i,j)=0;G(j,i)=0;
end
end
end
end
t=t+1;
else %计算高阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0
adj=[] ;
for k=1:size(G,1) %size(G,1)表示基因的个数
if G(i,k)~=0 && G(j,k)~=0
adj=[adj,k] ;
end
end %如果基因k与基因i,j均相邻,则将其放入数组adj中,adj表示邻居节点个数
if size(adj,2)>=order %判断邻居数是否大于阶数
combntnslist=combntns(adj,order); %找出邻居节点的order阶互信息的所有可能组合形式
combntnsrow=size(combntnslist,1); %总的组合个数
cmiv=0;
v1=data(i,:);
v2=data(j,:); %v1是节点i的信息,v2是节点j的信息
for k=1:combntnsrow
vcs=data(combntnslist(k,:),:); %第k种可能组合方式的信息数
a=cmi(v1,v2,vcs) ; %计算出所有的order阶互信息
cmiv=max(cmiv,a); %找出最大的order阶互信息值
end
Gval(i,j)=cmiv; Gval(j,i)=cmiv;
if cmiv<lamda
G(i,j)=0; G(j,i)=0;
end
t=t+1;
end
end
end
end
end
end
我定义个上述的函数,然后在另一个文件中调用这个函数,但是我也想知道这个函数中的v1,v2,vcs的值,请问怎么求解,谢谢!
可以在之后添加一个输出函数,例如在C语言中就可以加,printf(“d%d%d%”,v1,v2,vcs);
当然各个程序差不多,您可以采取类似的方式。
function [G,Gval,t]=edgereduce(G,Gval,order,data,t,lamda)
if order==0 %计算0阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0 %如果i,j两点间存在连接
cmiv=cmi(data(i,:),data(j,:)); %计算出i,j的条件互信息
Gval(i,j)=cmiv; Gval(j,i)=cmiv; %将条件互信息的值存入Gval中
if cmiv<lamda %如果cmiv小于阈值lamda,则将邻接矩阵图的值置为0
G(i,j)=0;G(j,i)=0;
end
end
end
end
t=t+1;
else %计算高阶互信息
for i=1:size(G,1)-1
for j=i+1:size(G,1)
if G(i,j)~=0
adj=[] ;
for k=1:size(G,1) %size(G,1)表示基因的个数
if G(i,k)~=0 && G(j,k)~=0
adj=[adj,k] ;
end
end %如果基因k与基因i,j均相邻,则将其放入数组adj中,adj表示邻居节点个数
if size(adj,2)>=order %判断邻居数是否大于阶数
combntnslist=combntns(adj,order); %找出邻居节点的order阶互信息的所有可能组合形式
combntnsrow=size(combntnslist,1); %总的组合个数
cmiv=0;
v1=data(i,:);
v2=data(j,:); %v1是节点i的信息,v2是节点j的信息
for k=1:combntnsrow
vcs=data(combntnslist(k,:),:); %第k种可能组合方式的信息数
a=cmi(v1,v2,vcs) ; %计算出所有的order阶互信息
cmiv=max(cmiv,a); %找出最大的order阶互信息值
end
Gval(i,j)=cmiv; Gval(j,i)=cmiv;
if cmiv<lamda
G(i,j)=0; G(j,i)=0;
end
t=t+1;
end
end
end
end
end
end
我定义个上述的函数,然后在另一个文件中调用这个函数,但是我也想知道这个函数中的v1,v2,vcs的值,请问怎么求解,谢谢!
可以在之后添加一个输出函数,例如在C语言中就可以加,printf(“d%d%d%”,v1,v2,vcs);
当然各个程序差不多,您可以采取类似的方式。
TableDI
2024-07-18 广告
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询