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

6 次查看(过去 30 天)
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 ?

采纳的回答

Stephen23
Stephen23 2018-12-17
编辑:Stephen23 2018-12-17
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 个评论
Stephen23
Stephen23 2018-12-17
编辑:Stephen23 2018-12-17
@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.

请先登录,再进行评论。

更多回答(1 个)

KSSV
KSSV 2018-12-17
Let C be your cell array
fid = fopen('test.txt','w');
fprintf(fid,'%s\n',C{:});
fclose(fid);
  4 个评论
KSSV
KSSV 2018-12-17
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);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by