matlab 中矩陣所有行加入子cell中

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

 

發佈了24 篇原創文章 · 獲贊 28 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章