Matlab - Desde Array Cell hacia excel

   
Vista:

Desde Array Cell hacia excel

Publicado por Jorge (2 intervenciones) el 10/11/2014 04:19:23
Buenas, tengo este código que lo que me permite es guardar un archivo de texto a un array cell

current = pwd;
filename = [current,'\Datos.txt'];
delimiter = {',',' '};

formatSpec = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%[^\n\r]';
fileID = fopen(filename,'r');

dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'ReturnOnError', false);

fclose(fileID);

raw = repmat({''},length(dataArray{1}),length(dataArray)-1);
for col=1:length(dataArray)-1
raw(1:length(dataArray{col}),col) = dataArray{col};
end
numericData = NaN(size(dataArray{1},1),size(dataArray,2));

rawData = dataArray{9};
for row=1:size(rawData, 1);
.
regexstr = '(?<prefix>.*?)(?<numbers>([-]*(\d+[\,]*)+[\.]{0,1}\d*[eEdD]{0,1}[-+]*\d*[i]{0,1})|([-]*(\d+[\,]*)*[\.]{1,1}\d+[eEdD]{0,1}[-+]*\d*[i]{0,1}))(?<suffix>.*)';
try
result = regexp(rawData{row}, regexstr, 'names');
numbers = result.numbers;

invalidThousandsSeparator = false;
if any(numbers==',');
thousandsRegExp = '^\d+?(\,\d{3})*\.{0,1}\d*$';
if isempty(regexp(thousandsRegExp, ',', 'once'));
numbers = NaN;
invalidThousandsSeparator = true;
end
end

if ~invalidThousandsSeparator;
numbers = textscan(strrep(numbers, ',', ''), '%f');
numericData(row, 9) = numbers{1};
raw{row, 9} = numbers{1};
end
catch me
end
end

rawNumericColumns = raw(:, 9);
rawCellColumns = raw(:, [1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19]);

R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),rawNumericColumns); % Find non-numeric cells
rawNumericColumns(R) = {NaN}; % Replace non-numeric cells

Final = raw;

clearvars filename delimiter formatSpec fileID dataArray ans raw col numericData rawData row regexstr result numbers invalidThousandsSeparator thousandsRegExp me rawNumericColumns rawCellColumns R;

El texto en txt, tiene información como la siguiente:

10:12:52.965120 IP6 2001:DB8:1::3:103 > 2001:DB8:1::E:101: ICMP6, echo request, seq 538, length 40
10:12:52.965344 IP6 2001:DB8:1::E:101 > 2001:DB8:1::3:103: ICMP6, echo reply, seq 538, length 40
10:12:53.407630 802.1d config TOP_CHANGE 8001.64:d9:89:eb:03:00.8028 root 8001.64:d9:89:d3:b4:00 pathcost 4 age 1 max 20 hello 2 fdelay 15
10:12:53.966155 IP6 2001:DB8:1::3:103 > 2001:DB8:1::E:101: ICMP6, echo request, seq 539, length 40
10:12:53.966376 IP6 2001:DB8:1::E:101 > 2001:DB8:1::3:103: ICMP6, echo reply, seq 539, length 40
10:12:54.966772 IP6 2001:DB8:1::3:103 > 2001:DB8:1::E:101: ICMP6, echo request, seq 540, length 40
10:12:54.967152 IP6 2001:DB8:1::E:101 > 2001:DB8:1::3:103: ICMP6, echo reply, seq 540, length 40
10:12:55.411202 802.1d config TOP_CHANGE 8001.64:d9:89:eb:03:00.8028 root 8001.64:d9:89:d3:b4:00 pathcost 4 age 1 max 20 hello 2 fdelay 15
10:12:55.969096 IP6 2001:DB8:1::3:103 > 2001:DB8:1::E:101: ICMP6, echo request, seq 541, length 40
10:12:55.969323 IP6 2001:DB8:1::E:101 > 2001:DB8:1::3:103: ICMP6, echo reply, seq 541, length 40

El Array Cell tiene datos separados en columnas, por espacio y por comas;

Lo que deseo ahora es poder exportar estos datos desde el Cell a un archivo en excel pero que me quede separado por columnas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder