MATLAB Answers

create new variable in dataset based on existing variable

13 views (last 30 days)
Chet
Chet on 19 Mar 2014
Commented: Chet on 20 Mar 2014
Hello, My dataset has two columns : Hour (1:24) and Prices. I want to create a new variable called "peak type" based on the value in the Hour column. Specifically - if the hour is in the set (1 through 6,23,24) then the peaktype is off peak, else the peaktype is peak. For starters, I tried this just on hour 1 using the code below:
% myDset is 24x2 dataset (column 1 = Hour, Column 2 = Price) for x = 1:24; if myDset{x,1}==1; pt(x,1)='7x8'; else; pt(x,1)='5x16'; end; end
error: Assignment has more non-singleton rhs dimensions than non-singleton subscripts
I'm fairly new to Matlab and I'm not sure what's going on. I keep getting errors on other variants of the above code. Can anyone help please? Thanks Chet

Accepted Answer

Mischa Kim
Mischa Kim on 20 Mar 2014
Chetan, check out:
myDset = num2cell([(1:24)', rand(24,1)]); % create some data
for x = 1:24
if any(myDset{x,1} == [1:6,23,24]) % check for peak hour
pt{x} = '7x8'; % save string in cell aray
else
pt{x} = '5x16';
end
end
disp(pt)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!