フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Different result while run the same code? longer space between 2 column

3 ビュー (過去 30 日間)
Trung Hieu Le
Trung Hieu Le 2016 年 6 月 18 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Hi everyone! Could you help me review my code why I got different results when I run the same code? Frist file with the result:
val =
12/27/2007 22:00:00 87.01
12/27/2007 22:30:00 87.01
12/27/2007 23:00:00 87.02
12/27/2007 23:30:00 87.02
12/28/2007 00:00:00 87.03
Second file with the result:
val =
08/29/1996 15:30:00 17.85
08/29/1996 16:00:00 17.85
08/29/1996 16:30:00 17.85
08/29/1996 17:00:00 17.85
08/29/1996 17:30:00 17.85
The first result has the longer space than the second result. It made a difficult for me to run next codes. I wonder why it has a difference like that? The input file has the same format. The code used as follows:
%%reset
clear all;
close all;
clc;
%delete NaN, continuously duplicated value and keep the last one
f=fopen('CLF1999.txt');
c=textscan(f , '%s%s%s%f' , 'Headerlines' , 1 , 'delimiter' , ' ');
fclose(f);
t =[diff(c{end})~=0;true];
C = [c{1:3}];
data = [C(t,:),num2cell(c{end}(t))];
clearvars -except data
%combine column date and time
day = data(1:end,2);
time = data(1:end,3);
ns = datenum(day, 'mm/dd/yyyy') + datenum(time, 'HH:MM:SS') - datenum('00:00:00','HH:MM:SS');
data=[data num2cell(ns)];
data(:,1:3)=[];
%data = cell2table(data,'VariableNames',{'Symbol','Price','DateTime'});
DTn = data(:,2);
sortminute = minute(datetime(DTn{1},'ConvertFrom','datenum'));
if(sortminute>=30)
firstdata = dateshift(datetime(DTn{1},'ConvertFrom','datenum'),'start','hour') + minutes(60);
else
firstdata = dateshift(datetime(DTn{1},'ConvertFrom','datenum'),'start','hour') + minutes(30);
end
ti = 1/(60/30 * 24); % Time Interval
DTiv = [datenum(firstdata):ti:DTn{end}]'; % Interpolation Vector
Price = data(:,1); % Vector: Column #2 Of Table1
% Convert cell to matrix
DTn = cell2mat(DTn) ;
Price = cell2mat(Price) ;
% Arrange the matrix in order
[DTn,idx] = sort(DTn) ;
Price = Price(idx) ;
% Remove doubles
[DTn1,idx] = unique(DTn) ;
DTn = DTn1 ;
Price = Price(idx) ;
DT30 = interp1(DTn, Price, DTiv); % Interpolated Column #2
NewTable1 = {datestr(DTiv, 'mm/dd/yyyy HH:MM:SS') DT30};
CLF1999 = [NewTable1{1} repmat(' ', size(NewTable1{2})) num2str(NewTable1{2}, '%.2f')];
Thanks a lot for your help.
  1 件のコメント
Geoff Hayes
Geoff Hayes 2016 年 6 月 19 日
Trung - where does the val variable get set in your above code? Please clarify.

回答 (0 件)

この質問は閉じられています。

Community Treasure Hunt

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

Start Hunting!

Translated by