How to change data and display a text using cell arrays.

3 views (last 30 days)
Greetings,
The program I'm developing takes the html code from an internet forecasting page, ignores all the html tags and stores the text on MATLAB as a cell array.
The problem is I can't get to replace some quotation marks I keep getting in the Output.
The program goes like this:
clc,clear;
urlwrite('http://weather.noaa.gov/cgi-bin/fmtbltn.pl?file=forecasts/marine/coastal/am/amz722.txt','Anegada_Passage_Southward.txt');
fid=fopen('Anegada_Passage_Southward.txt');
y=fgetl(fid);
data = textscan( fid, '%s', 'Delimiter', ''); %read the entire file as strings, one per line.
out = regexprep( data{1}, '<[^>]+>', '' ); %remove the HTML
for i=1:1:36
if out{i}=='';
setfield(out,{i},'');
else
getfield(out,{i});
end
end
fclose(fid);
On the 'if' part I keep geeting this Error:
Error using ==> eq Matrix dimensions must agree.
Error in ==> pru at 12 if out{i}=='';
I want to repace those '' with empty lines to divide paragraphs.
What can I do?
  1 Comment
per isakson
per isakson on 1 Jul 2012
Move "fclose(fid);" to directly after textscan. You don't want to keep the file open longer than necessary, since it may cause problems during debugging.

Sign in to comment.

Accepted Answer

per isakson
per isakson on 1 Jul 2012
The variable, out, is a cell array of strings. The functions, setfield and getfield, operate on structure arrays.
Replace the for-loop by
for ii = 1:1:36
if isempty( out{ii} )
out{ii} = []; % or do nothing
else
disp( out{ii} )
end
end

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!