The Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: How to a 1-D matrix into several 1-D matrix based on condition
Replies: 5   Last Post: Dec 8, 2012 4:36 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]

Posts: 9,850
Registered: 6/7/07
Re: How to a 1-D matrix into several 1-D matrix based on condition
Posted: Dec 8, 2012 3:46 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 12/8/2012 1:15 PM, S Ehtesham Al Hanif wrote:
> Suppose I have matrix A like below:


> Now I want to divide these into a few groups (1 D matrix) based on one
> condition that is when in that matrix i will reach 0 it will generate a
> 1-D matrix up to this such as below mentioned B,C,D,E.


> Can anybody suggest me how to do this?

Is there a homework problem that needs this somehow???? I just solved
the same problem for a Christopher Fell in a thread " Divide single
column into variables" just a few days ago....

First, for many reasons you do _NOT_ want to poof variable names into
the Matlab workspace--for this problem use a cell array since the
various subsets are of varying lengths. If you really, really, really
want a alpha name, then put the cells into named structure fields...

For your A vector...

>> inz=find(A);
>> ix=find(diff(inz)>1);
>> i1=1;for i=1:length(ix),c(i)={A(inz(i1):inz(ix(i)))'};i1=ix(i)+1;end
>> c(i+1)={A(inz(i1):end)'};
>> c{:}

ans =
1 3 5 7 8 1 4
ans =
1 4 6 3
ans =
1 4 6
ans =
2 5 9 1

Salt to suit a fixup if you do want to keep the zeros--it's a relatively
easy modification.

Note I transposed the column to row vector to make the final output more


Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.