matlab 中对大型数据进行处理时,经常需要把矩阵里的某一些数据进行处理。如所以行或者列重新储存再某个cell的子cell中。下面是一个简单实现:

  load('lncRNAGene.mat')  %加载数据
  load('GeneDisease.mat')
  R12=LGasso'; %R12为矩阵,15527*240
  R13=GDasso; %R13为矩阵,15527*8450
 
newTarget=R13'; 
newTarget1 = zeros(size(newTarget));

[row,col]=size(newTarget);%把newTarget 里面的数据变为0.-1形式
for i=1:row
    for j=1:col
        if newTarget(i,j)==1
            newTarget1(i,j)=-1;
        else
            newTarget1(i,j)= newTarget(i,j);
        end
    end
end
newTarget=newTarget1;
%temp = num2cell(R12);
newBags1=cell(15527,1);
[row,col]=size(R12);

% 错误实现,()不行,需要用{}
% for i=1:row     
%     newBags(i,1) = cell(1,240);  %先把cell为15527*1里面的每个数都变为为子cell 大小为1*140
% end

%用{}
for i=1:row
    newBags{i,1} = R12(i,:);
end
evalstr=['save ','NewLetterM4L.mat newTarget newBags'];%把newTarget 和newBags储存在当前目录的NewLetterM4L.mat
eval(evalstr);   %执行

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐