How to perform individual operation on a Column of data from excel file?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Khondokar Fida Hasan
am 23 Okt. 2017
Kommentiert: Walter Roberson
am 23 Okt. 2017
I am intended to perform a separate operation (adding/subtracting some values) on Positive and Negative value from an Excel dataset using Matlab. To read the column I use the following code
num = xlsread('testdata.xls', 'B:B');
it reads fine and when I ask 'num' it shows the data. However, the data are having positive and negative values. I want to add some values to negative dataset and substruct from the positive dataset by keeping their position alike so that I can reconstruct a graph having exactly the same pattern. I have made two attempts:
1. Using logical indexing I can separate the positive and negative values and then perform the operation but can't combine them in the same order, something like following
idx = num<0;
neg = num(idx)+ 1.0e-08
pos = num(~idx)- 1.0e-08
2. If-else also not working at all:
if (num<0)
num = num +1
elseif(num>0)
num = num +2
end
Any help, please?
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
Walter Roberson
am 23 Okt. 2017
idxneg = num<0;
num(idxneg) = num(idxneg)+ 1.0e-08;
idxpos = num>0;
num(idxpos) = num(idxpos)- 1.0e-08;
I did not use ~idxneg because ~idxneg would include num == 0 exactly, but exact zeros are not positive values.
There is a shortcut for this code:
num = num - sign(num) * 1.0e-08;
This even leaves 0 unchanged.
2 Kommentare
Walter Roberson
am 23 Okt. 2017
offsets = [1.0e-08, 0, -8.7e-9];
num = num + offsets(2 + sign(num));
provided that the breakpoints are still negative, 0, positive
Siehe auch
Kategorien
Mehr zu Data Import from MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!