hongfive 2021-07-26 18:21 采纳率: 0%
浏览 25
已结题

matlab运行速度优化(for循环与并行计算)

在使用matlab做课题的时候,需要运行几千节点的大型对称邻接矩阵,写的代码运行时间太久了,试了parfor并行计算,开了6个works跑程序,尽力优化了代码细节,但速度还是提不上来,求程序还有哪些优化空间(如矢量化或者mex等等优化操作)。
matlab的代码如下:

function [seeds] = New_OWN_parallel(net,k,seedsize)


%   筛选节点获得重要节点
[kcore_mat,oldtag]=K_core_with_tag(net,2);

net1=full(net);

A=net^k;
[row,vol]=size(net);
seeds=[];


for i=1:seedsize
    s=-inf*ones(row,1);%放入种子集的节点的贡献值
    net=net1;
    net(seeds,:)=0;
    net(:,seeds)=0;
    temp=[];

    parfor u=1:length(oldtag)     
        j=oldtag(u);

        if ismember(j,seeds)
            continue;
        end
        
        R=zeros(row);
        R(j,:)=net(j,:);
        R(:,j)=net(:,j);
        
        if k==1
            B=R;
        else
            B=A-(net-R)^k;
        end
        theta=sum(sum(B));
        temp=[temp;theta];
        
    end
    s(oldtag,1)=temp;
    i_m=find(max(s)==s);
    index=i_m(1);
    seeds=[seeds;index];
    oldtag(oldtag==index)=[];
end
    seeds=seeds';
end




  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月3日
    • 创建了问题 7月26日

    悬赏问题

    • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
    • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
    • ¥20 C#上传XML格式数据
    • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
    • ¥100 单片机hardfaulr
    • ¥20 手机截图相片分辨率降低一半
    • ¥50 求一段sql语句,遇到小难题了,可以50米解决
    • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
    • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
    • ¥15 虚拟机检测,可以是封装好的DLL,可付费