Question

How to write the cell as below in text file(my_data.out)?

enter image description here

enter image description here

 http_only = cell2mat(http_only)
 dlmwrite('my_data.out',http_only)

I get the error as below:(I have tried to solve but still return me the error)

enter image description here

Here is my full code: I want to generate the text file for each of the data which only store 'http_only' then check for that is it meet the word in split_URL.

 %data = importdata('DATA/URL/training_URL')
 data = importdata('DATA/URL/testing_URL')

 domain_URL = regexp(data,'\w*://[^/]*','match','once')

 no_http_URL = regexp(domain_URL,'https?://(?:www\.)?(.*)','tokens','once');
 no_http_URL = vertcat(no_http_URL{:});
 split_URL = regexp(no_http_URL,'[:/.]*','split')

 [sizeData b] = size(split_URL);

 for i = 1:100
 A7_data = split_URL{i};

 data2=fopen(strcat('DATA\WEBPAGE_SOURCE\TESTING_DATA\',int2str(i),'.htm'),'r')

 CharData = fread(data2, '*char')';  %read text file and store data in CharData
 fclose(data2);

 img_only = regexp(CharData, '<img src.*?>', 'match'); %checking

 http_only = regexp(img_only, '"http.*?"', 'match');

 http_only1 = horzcat(http_only{:});

 fid = fopen('my_data.out',int2str(i),'w');
 for col = 1:numel(http_only1)
   fprintf(fid,'%s\n',http_only1{:,col});
 end
 fclose(fid);

 feature7_data=(~cellfun('isempty', regexpi(CharData , A7_data, 'once')))

 B7(i)=sum(feature7_data)

 end

 feature7(B7>=5)=-1;
 feature7(B7<5&B7>2)=0;
 feature7(B7<=2)=1;

 feature7'
Was it helpful?

Solution

Write cell-by-cell using fprintf -

fid = fopen('my_data.out','w');
for col = 1:numel(http_only)
    fprintf(fid,'%s\n',http_only{:,col});
end
fclose(fid);

Edit 1: If your input is a cell array of cell arrays, use this code instead.

Code

http_only1 = horzcat(http_only{:});

fid = fopen('my_data.out','w');
for col = 1:numel(http_only1)
    fprintf(fid,'%s\n',http_only1{:,col});
end
fclose(fid);

Edit 2: For a number of inputs to be stored into separate files, use this demo -

data1 = {{'[]'} {'"http://google.com"'} {'"http://yahoo.com'}};
data2 = {{'[]'} {'"http://overflow.com"'} {'"http://meta.exchange.com'}};

data = cat(1,data1,data2);

for k = 1:size(data,1)
    data_mat = horzcat(data{k,:});
    out_filename = strcat(out_basename,num2str(k),'.out');
    fid = fopen(out_filename,'w');
    for col = 1:numel(data_mat)
        fprintf(fid,'%s\n',data_mat{:,col});
    end
    fclose(fid);
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top