dpb
Posts:
8,570
Registered:
6/7/07


Re: matlab version and "for" loops
Posted:
Feb 12, 2013 12:36 PM


On 2/12/2013 10:07 AM, Jessica wrote: > "Jessica " <jly5@duke.edu> wrote in message > <ke3bjs$b6t$1@newscl01ah.mathworks.com>... >> dpb <none@non.net> wrote in message <ke2bbi$98i$1@speranza.aioe.org>... >> > On 1/26/2013 4:50 PM, 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>... >> > ... >> > > >> > Data(delete) = [] >> > ... >> > > > 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. >> > > Generalize the rule Bruno illustrated >> > > GazeType(GazeType>10)=[]; >> > >  >> > >> Unfortunately, this won't quite work because I am trying to delete >> rows within larger data sets: >> >> >> First, I isolate the column I am interested in: >> >> RemoveColumn3=Total4(:, 11); >> >> Then I wanted to generate a variable (just like I did above when the >> value was a string), that indicates the rows to be deleted (which are >> greater than 10). >> >> And then, delete those specific rows within 2 datasets: >> Total4(delete) = [] >> Target4(delete) = [] > > > I am having some trouble generalizing this logical method. Specifically, > I am reading in a .csv file and trying to delete "Rows" that have even > numbers: > > Dataset=importdata('020513_No11_WithHeaders.csv'); > FinalDataSet=Dataset.data; > FinalDataSet2=Dataset.data; > Row=Dataset.data(:,5); > tf=bitget(abs(Row),1)~=0; > FinalDataSet2(tf)=[]; > > However, "FinalDataSet2" is originally sized as 81539x6. When I delete > the "tf" values, it turns into a variable that is sized as 1x448465. > > Can anyone suggest what I am doing incorrectly here?
Well, when you don't remove elements such that those being removed are specified as either complete rows or columns the result can't be a regularly spaced array and so ML returns a vector.
Given a (short) example dataset that illustrates the input and desired results.
Reading the first part literally, to eliminate rows w/ even indices simply
x(2:2:end,:)=[];
does that job.


