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); %执行