I have a time series data which is 46723-by -1. I want to populate another matrix with some specific time series. this is the code i have.
newTime = zeros(); % the new array with 4 columns, each column to have a specified time series
for j = 1:length(time)
if time(j) >=7 && time(j) <= 11
newTime(j,1) = time(j) ;
elseif time(j) >=56 && time(j) <= 59
newTime(j,2) = time(j) ;
elseif time(j) >=99 && time(j) <= 106
newTime(j,3) = time(j) ;
elseif time(j) >=133 && time(j) <= 143
newTime(j,4) = time(j) ;
end
end
Now the above code works fine, however, as you can see the columns of the newTimes has (1,2,3,4) which i want to do in a loop, is there a way to do this?

 Akzeptierte Antwort

KSSV
KSSV am 26 Sep. 2020

0 Stimmen

newTime = cell(1,4); % cell because, we are not sure of dimensions in each case
R = [7 11 ; 56 59 ; 99 106 ; 133 143 ] ; % the four case ranges
for i = 1:4
newTime{i} = time(time >=R(i,1) && time <= R(i,2)) ;
end

2 Kommentare

Thanks for the answer, however, this generates the follwoing error.
Operands to the || and && operators must be convertible to logical scalar values.
Error in Day2 (line 72)
newTime{i} = time(time >=R(i,1) && time <= R(i,2)) ;
suleiman abdullahi
suleiman abdullahi am 26 Sep. 2020
Thanks i fixed the problem, we supposed to use only one & instead of &&.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020b

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by