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