Changing numbers in dataset
Show older comments
Hi,
I have a dataset of size m*n. The dataset only contains integer numbers between 1 to 5. Now I want to change the numbers as
1=-1
2=-1+(2/4)=-1/2
3=-1+(4/4)=0
4=-1+(64)=1/2
5=-1+(8/4)=1
Is there any efficient way of doing that?
Accepted Answer
More Answers (1)
For only five values, I think it's pretty efficient to do a direct replacement:
ds_new = zeros(size(dataset))
ds_new(dataset == 1) = -1;
ds_new(dataset == 2) = -0.5;
% ...etc
If you need more flexibility, this is what I came up with:
ds = randi(5,4)
ints = 1:5;
vals = 0.5*(ints-1)-1;
dsnew = zeros(size(ds));
for idx = 1:numel(ints)
dsnew(ds == idx) = vals(idx);
end
dsnew
Categories
Find more on Sparse Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!