How to write a cell array of mixed strings and integers into a text file?

8 vues (au cours des 30 derniers jours)
chocho
chocho le 17 Déc 2018
Commenté : chocho le 17 Déc 2018
Hello guys,
I have a cell array of 700 rows and 2 columns,
The first column have a mixed of strings and integer values like this:
'GALK1' 1
'ERCC2' 1
'PGD' 1
'PLK' 1
0 0
0 0
0 0
0 0
0 0
i write this code but the cells of column 1 didn't show that 0 and only strings , which type i can use that can detect both strings and integers for the same column?
[rowfile1,colfile1]=size(Stages_pathws_genes_counts);
fidefile1= fopen('Rec_Stages','wt');
fprintf(fidefile1, '%s\t%s\n','Stg1_genes','#Stg1_count');
for gfile1=1:size(Stages_pathws_genes_counts)
fprintf(fidefile1,'%s\t %d\t',Stages_pathws_genes_counts{gfile1,:});
fprintf(fidefile1,'\t');
fprintf(fidefile1,'\n');
end
fclose(fidefile1);
Can anyone plz suggest me ?
  2 commentaires
madhan ravi
madhan ravi le 17 Déc 2018
Modifié(e) : madhan ravi le 17 Déc 2018
Upload your text file

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 17 Déc 2018
Modifié(e) : Stephen23 le 17 Déc 2018
Where C is your cell array:
C = {'GALK1',1;'ERCC2',1;'PGD',1;'PLK',1;0,0;0,0;0,0;0,0;0,0};
D = cellfun(@num2str,C,'uni',0).';
[fid,msg] = fopen('temp0.txt','wt');
assert(fid>=3,msg)
fprintf(fid,'%s\t%s\n',D{:})
fclose(fid);
The file it creates is attached.
  4 commentaires
Stephen23
Stephen23 le 17 Déc 2018
Modifié(e) : Stephen23 le 17 Déc 2018
@chocho: check my edited answer. It uses your example cell array and writes a text file (attached to the answer). You did not describe the required file formatting and it is not completely clear from your code, so I guessed that you wanted the data in two columns.
chocho
chocho le 17 Déc 2018
@Stephen Cobeldick Thanks a lot a lot a lot Stephen !

Connectez-vous pour commenter.

Plus de réponses (1)

KSSV
KSSV le 17 Déc 2018
Let C be your cell array
fid = fopen('test.txt','w');
fprintf(fid,'%s\n',C{:});
fclose(fid);
  4 commentaires
KSSV
KSSV le 17 Déc 2018
If you don't want to write zero strings in column 1 of cells:
load('ret.mat') ;
C = Ret ;
fid = fopen('data.txt','w');
for i = 1:length(C)
fprintf(fid,'%s %f\n',C{i,1},C{i,2});
if C{i,1}==0
break
end
end
fclose(fid);
chocho
chocho le 17 Déc 2018
Modifié(e) : chocho le 17 Déc 2018
No, i want to write everything strings and zeros as well

Connectez-vous pour commenter.

Catégories

En savoir plus sur Large Files and Big Data dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by