MATLAB Answers

Silpa K
0

Apply all steps in whole data set.

Asked by Silpa K
on 12 Oct 2019
Latest activity Commented on by Silpa K
on 12 Oct 2019
clc
clear
ts = xlsread('ECGFiveDays_TRAIN.xlsx');
p=ts(1:1,2:end);
fa = movstd(p ,20,1);
secarray = movstd(fa,20,1) ;
k=maxk(secarray,10);
[~,ii] = min(abs(p(:) - k(:)'));
out = p(unique(ii));
subSequence{1} = p(1:30);
subSequence{2} = p(31:60);
subSequence{3} = p(61:90);
subSequence{4} = p(91:120);
subSequence{5} = p(121:end);
A = [];
for ii = 1:length(subSequence)
if any(ismember(subSequence{ii},out))
A{end+1} = subSequence{ii};
aa = ii;
disp(aa);
end
end
idx=1:length(aa);
bb= subSequence{2};
cc=subSequence{3};
q=[idx bb cc];
xlswrite('Bookecgtest2.xlsx',q,'A1:BI')
Here Iam using only one row(p=ts(1:1,2:end);).I need to apply all these steps (from 3rd step fa = movstd(p ,20,1);) in ts(the full dataset).I try these using for loop then so many errors are coming.How can I apply all these steps in my whole dataset and create an excel sheet.The dataset is attached here.

  1 Comment

Silpa K
on 12 Oct 2019
if I use
ts = xlsread('ECGFiveDays_TRAIN.xlsx');
for i=1:23
p=ts(i,:)
fa = movstd(p,20,1);
secarray=movstd(fa,20,1)
k=maxk(secarray,10)
%figure(1)
%plot(p)
[~,ii] = min(abs(p(:) - k(:)'));
out = p(unique(ii));
%figure(2)
%plot(p)
%hold on;
%plot(cell2mat(arrayfun(@(x)find(abs(p-x)<eps),out, 'UniformOutput',false)), out,'*');
for iii=1:24
subSequence{1} = p(1:30);
subSequence{2} = p(31:60);
subSequence{3} = p(61:90);
subSequence{4} = p(91:120);
subSequence{5} = p(121:end);
end
A = [];
for ii = 1:length(subSequence)
if any(ismember(subSequence{ii},out))
A{end+1} = subSequence{ii};
aa = ii;
disp(aa);
end
end
end
Then how can I write all the subsequence into excel sheet .(that is write the subsequences contain in 1st row and next write the subsequences contain in the 2nd row in the 2nd row of excel).

Sign in to comment.

Tags

1 Answer

Answer by Image Analyst
on 12 Oct 2019
 Accepted Answer

You need to make up a cell reference with the row and column you want the data to go into. For example
cellReference = sprintf('A%d', row);
xlswrite(fullFileName, data, sheetName, cellReference);

  4 Comments

Show 1 older comment
You could have a loop over rows, where you increment the row
for row = 1 : totalRows
% Get data for this row
data = .... whatever .....
cellReference = sprintf('A%d', row);
xlswrite(fullFileName, data, sheetName, cellReference);
end
Silpa K
on 12 Oct 2019
Thank you sir,
This is getting.But Iam getting same value in every row.In the code I was given above there are different subsequences for every row.I need to write the different subsequences.What can I do,please help me.
Silpa K
on 12 Oct 2019
Sorry.Its my mistake I got the excelsheet.Thank you.

Sign in to comment.