From: kk KKsingh on 6 Aug 2010 15:40 I have some Signals about 500 samples acquired in 750 seconds.. so Row denotes time = 1:1:750, coulmns are 500 Now I need to remove time and columns having value of 45.....there are some..so need to remove indexes of both time and signal...... After that i need to run a algorithm say [x,y]=dft(time,signal) I am not sure how to get the decimated matrix out ! Thanks and Regards
From: dpb on 6 Aug 2010 16:18 kk KKsingh wrote: > I have some Signals about 500 samples acquired in 750 seconds.. > > so Row denotes time = 1:1:750, coulmns are 500 > > Now I need to remove time and columns having value of 45.....there are > some..so need to remove indexes of both time and signal...... > > After that i need to run a algorithm say > [x,y]=dft(time,signal) > > I am not sure how to get the decimated matrix out ! .... What's the specific nature of the data w/ the value to be removed? All observations for which any value of the 500 columns are 45? Is there actually a time == 45 that is to be removed (I'm guessing not, but it's not perfectly clear)? If it's the first, if the data is in array x of size(x)=[750,500] then [r45,c45]=find(x~=45); % rows, columns _not_ containing "45" x_decimated = x(unique(r45),:); % the unduplicated above rows --
From: dpb on 6 Aug 2010 16:37 dpb wrote: .... > If it's the first, if the data is in array x of size(x)=[750,500] then > > [r45,c45]=find(x~=45); % rows, columns _not_ containing "45" .... DOH! :( That fails 'cuz it returns row for any column that isn't even if there's another column that does meet the criterion. Sorry... Go at it in forward manner... [r45,c45]=find(x==45); % rows, columns containing "45" x(unique(r45),:) = []; % eliminate the rows found --
From: kk KKsingh on 6 Aug 2010 21:52 dpb <none(a)non.net> wrote in message <i3hs08$3rf$1(a)news.eternal-september.org>... > dpb wrote: > ... > > > If it's the first, if the data is in array x of size(x)=[750,500] then > > > > [r45,c45]=find(x~=45); % rows, columns _not_ containing "45" > > ... > > DOH! :( That fails 'cuz it returns row for any column that isn't even > if there's another column that does meet the criterion. Sorry... > > Go at it in forward manner... > > [r45,c45]=find(x==45); % rows, columns containing "45" > x(unique(r45),:) = []; % eliminate the rows found > > -- Hi, Thanks for the reply Problem is my matrix is 750 by 315 each column represent clipped audio signal having 750 points on in each signal....max clipped value is 45 minimum is -45....My algorithm works well on single column when i do index=find(s==45) s(index)=[]; t(index)=[]; index1=find(s==-45) s(index1)=[]; t(index1)=[]; x=dft(s,t) Now I want to do same thing for the whole 315 coulmn, column by column .....and x which is a 750 points out put...should be saved as column wise...This problem is about reconstructing missing points.... Should i run loop ?????? Thanks for your reply
From: dpb on 6 Aug 2010 22:39 kk KKsingh wrote: > dpb <none(a)non.net> wrote in message > <i3hs08$3rf$1(a)news.eternal-september.org>... .... >> [r45,c45]=find(x==45); % rows, columns containing "45" >> x(unique(r45),:) = []; % eliminate the rows found .... > ...My algorithm works well on single column when i do .... > Now I want to do same thing for the whole 315 coulmn, column by column > .....and x which is a 750 points out put...should be saved as column > wise...This problem is about reconstructing missing points.... .... That's where the problem description wasn't clear -- if you want a different set of time values for each column, then yes, you'll need to treat them individually. Looping would be one way, certainly, and perhaps as good as any since one presumes the rejected points won't be consonant across channels so there's not much sense in trying to keep an array (unless you make a cell array to hold a given length vector per entry). --
|
Next
|
Last
Pages: 1 2 3 Prev: Multiple Image to Matrix Conversion Next: robust portfolio estimation, M estimator of risk |