Replacing an array with string using condition
5 views (last 30 days)
Show older comments
Hi,
I have an array X=[0 0.1 0.2 0.3..... 30]. Now i should replace all values between a range with a string. For example: X(X>=0 &X<4)='delta', X(X>=4 &X<8)='theta', X(X>=8 &X<12)='alpha', X(X>=12 &X<30)='beta'. Can someone please help me with this?
0 Comments
Answers (1)
Walter Roberson
on 20 Oct 2016
That cannot be done in MATLAB. In MATLAB, numeric arrays cannot hold strings.
You could convert the numeric array to a cell array and store strings in that.
X_cell = num2cell(X);
I suggest you learn how to use logical indexing:
mask = X>=4 & X<8;
X_cell(mask) = {'something'};
2 Comments
Walter Roberson
on 21 Oct 2016
Edited: Walter Roberson
on 21 Oct 2016
>> X = (rand(3,5)*10);
>> X_cell = num2cell(X);
>> mask = X>=4 & X<8;
>> X_cell(mask) = {'something'};
>> X_cell
X_cell =
3×5 cell array
'something' [0.461713906311539] 'something' [0.344460805029088] 'something'
[0.318328463774207] [0.971317812358475] [3.17099480060861] 'something' 'something'
[ 2.7692298496089] [ 8.23457828327293] [9.50222048838355] [ 3.81558457093008] [1.86872604554379]
See Also
Categories
Find more on Get Started with MATLAB 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!