MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by FIR
on 25 Feb 2012

i have values in

r as

'<=50k' '>50k' '>50k' ; ;

; '>50k'

now i want to replace these values

>50k as 1

<=50 as 0

please help

i read those values from excel sheet

[d r]=xlsread('mydata.xls');in whicg i got those values in r

*No products are associated with this question.*

Answer by Andrei Bobrov
on 25 Feb 2012

Accepted answer

in this case

r = {'<=50k' '>50k' '>50k' '>50k'} [a n n] = unique(r) k = {0,1} rnew = k(n)

**or**

rnew = cellfun(@(x)x-'0',regexprep(r,{'<=50k' , '>50k'},{'0','1'}))

on FIR comment: try

rnew = regexprep(r,{'<=50k' , '>50k'},{'0','1'})

on Pat comment

r = {'<=50k' '>50k' '>50k' '>50k' 'fg' ''} rnew = regexprep(r, {'<=50k', '>50k'}, {'0', '1'}) t = ismember(rnew, {'0', '1'}) rnew(t) = cellfun(@(x)x-'0', rnew(t), 'un', 0)

FIR
on 25 Feb 2012

Andrei error in both

in first i get values more than 1

and in second is get error aS

Error using ==> cellfun

Non-scalar in Uniform output, at index 1, output 1.

Set 'UniformOutput' to false.

## 0 Comments