|
|
Re: matlab version and "for" loops
Posted:
Jan 26, 2013 10:27 PM
|
|
On Saturday, January 26, 2013 10:22:48 PM UTC-5, Gautam Sethi wrote: > On Saturday, January 26, 2013 5:50:08 PM UTC-5, Jessica wrote: > > > "Jessica " <jly5@duke.edu> wrote in message <kdmql8$n4i$1@newscl01ah.mathworks.com>... > > > > > > > "Bruno Luong" <b.luong@fogale.findmycountry> wrote in message <kdlt80$st0$1@newscl01ah.mathworks.com>... > > > > > > > > Here is a simple example, feel free to adapt to your case: > > > > > > > > > > > > > > > > GazeType={'Delete' 'Keep' 'Fruit' 'Delete' 'Benzen'} > > > > > > > > Picture={'Image' 'Picasso' 'Matisse' 'Dali' 'You'} > > > > > > > > Data = 1:5 > > > > > > > > > > > > > > > > delete_b = strcmp(GazeType,'Delete') & ~strcmp(Picture,'Image'); > > > > > > > > Data(delete) = [] > > > > > > > > > > > > > > > > % Bruno > > > > > > > > > > > > > > This is much faster-- thanks for the tip! > > > > > > > > > > > > And, one other question. If I want to do the same as above except delete based on numbers, how would I do that? If I do: > > > > > > > > > > > > delete_b = GazeType(GazeType>10) > > > > > > > > > > > > it only lists the numbers that are greater than 10 and I therefore cannot delete those rows. > > > > If GazeType is a column vector, you can do: > > > > GazeType(GazeType > 10) = []; > > > > Gautam.
Since you need to assign the new vector to delete_b, you can do
delete_b = GazeType; delete_b(GazeType > 10) = [];
|
|