converting from dataset (statistics toolbox) to cell array

  • Follow


I have a varibale A, of dataset class (250 by 1), the contents are all string. I need to convert that into a cell array of (250 by 1), unfortunately there seems to be no built in function for this.

I tried cellstr in the documentation under dataset, but error. 

Any hint.
0
Reply ade77 7/1/2010 1:40:22 PM

On 7/1/2010 9:40 AM, ade77 wrote:
> I have a varibale A, of dataset class (250 by 1), the contents are all
> string. I need to convert that into a cell array of (250 by 1),
> unfortunately there seems to be no built in function for this.

You might have one of two things:

1) a dataset with a variable that's a char matrix
2) a dataset with a variable that's already a cellstr

In either case, if all you want to do is get one variable out and 
convert it to a cell array of strings, you can just use the dataset's 
dot subscripting to pick out the variable and convert it if necessary.

Case 1:
 >> ds = dataset(['abc';'def';'ghi'])
ds =
     Var1
     abc
     def
     ghi
 >> s = cellstr(ds.Var1)
s =
     'abc'
     'def'
     'ghi'
In this case, it might make more sense to just convert it in place:
 >> ds.Var1 = cellstr(ds.Var1)
ds =
     Var1
     'abc'
     'def'
     'ghi'
 >> summary(ds)
Var1: [3x1 cell string]

Case 2:
 >> ds = dataset({'abc';'def';'ghi'})
ds =
     Var1
     'abc'
     'def'
     'ghi'
 >> s = ds.Var1
s =
     'abc'
     'def'
     'ghi'
In this case, there's really no need to take it out of the array, 
because you can refer to ds.Var1, and that _is_ a cell array of strings.

There is cellstr method for dataset that should do this for you:

 >> cellstr(ds)
ans =
     'abc'
     'def'
     'ghi'

So the fact that you said

> I tried cellstr in the documentation under dataset, but error.

makes me wonder what else is in that array.
0
Reply Peter 7/1/2010 2:28:40 PM


Peter Perkins <Peter.Perkins@MathRemoveThisWorks.com> wrote in message <i0i8mo$9ho$1@fred.mathworks.com>...
> On 7/1/2010 9:40 AM, ade77 wrote:
> > I have a varibale A, of dataset class (250 by 1), the contents are all
> > string. I need to convert that into a cell array of (250 by 1),
> > unfortunately there seems to be no built in function for this.
> 
> You might have one of two things:
> 
> 1) a dataset with a variable that's a char matrix
> 2) a dataset with a variable that's already a cellstr
> 
> In either case, if all you want to do is get one variable out and 
> convert it to a cell array of strings, you can just use the dataset's 
> dot subscripting to pick out the variable and convert it if necessary.
> 
> Case 1:
>  >> ds = dataset(['abc';'def';'ghi'])
> ds =
>      Var1
>      abc
>      def
>      ghi
>  >> s = cellstr(ds.Var1)
> s =
>      'abc'
>      'def'
>      'ghi'
> In this case, it might make more sense to just convert it in place:
>  >> ds.Var1 = cellstr(ds.Var1)
> ds =
>      Var1
>      'abc'
>      'def'
>      'ghi'
>  >> summary(ds)
> Var1: [3x1 cell string]
> 
> Case 2:
>  >> ds = dataset({'abc';'def';'ghi'})
> ds =
>      Var1
>      'abc'
>      'def'
>      'ghi'
>  >> s = ds.Var1
> s =
>      'abc'
>      'def'
>      'ghi'
> In this case, there's really no need to take it out of the array, 
> because you can refer to ds.Var1, and that _is_ a cell array of strings.
> 
> There is cellstr method for dataset that should do this for you:
> 
>  >> cellstr(ds)
> ans =
>      'abc'
>      'def'
>      'ghi'
> 
> So the fact that you said
> 
> > I tried cellstr in the documentation under dataset, but error.
> 
> makes me wonder what else is in that array.

Deep appreciation Perkins
0
Reply ade77 7/1/2010 6:11:09 PM

2 Replies
902 Views

(page loaded in 0.017 seconds)

Similiar Articles:













7/22/2012 12:19:24 PM


Reply: