Click here to Skip to main content
Click here to Skip to main content

An STL-Like Vector With Matlab Indexing Facilities

, 3 Apr 2003 GPL3
Rate this:
Please Sign up or sign in to vote.
An STL-Like Vector with Matlab indexing facilities.

Sample Image - mtVector.jpg

Introduction

Vector is the basic data structure in MATLAB. It provides easy, fast, effective, and scalable data structures giving programming an algebraic view for data, even for complex data structures. Matlab allows you do develop fast technical solutions. However, MATLAB loops, and UIs are too slow Blush | :O . It is your responsibility to reformulate your code and data structures into matrices and vectors.

For example, to sum up a vector, you can write a simple counting loop. However, it is faster to use inner product with a vector of ones.

mtVector, mtRefVector

mtVector provides an STL-like vector. Actually, it wraps std::vector. Mathematical and indexing operators are added.

typedef mtVector<int> intVector;
 intVector iv1(15,   /* 15 elements */

  0,1,2,3,4,5,6,7,8,9,10,11,12,13,14);

 intVector iv2(15,   /* 15 elements */

  0,10,20,30,40,50,60,70,80,90,100,110,120,130,140);

 print(iv1);

prints:

iv1= < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 >

and,

print(iv1(4 to 12));

returns mtRefVector and prints:

iv1(4 to 12)= < 4 5 6 7 8 9 10 11 12 >

Similarly:

iv1(4 to 12)=iv2(4 to 12);
print(iv1);

assigns values in iv2(4..12) to elements in iv1(4..12), and prints:

iv1= < 0 1 2 3 40 50 60 70 80 90 100 110 120 13 14 >

Moreover, it extends to select elements given a vector of their indices:

intVector iv3(15, 0,1,2,1,2,0,2,0,1,1,0,4,4,0,4);

print(iv1(iv3.FindOnes()));

returns mtRefVector and prints:

iv1(iv3.FindOnes())= < 9 18 27 360 540 720 810 990 1080 126 >

I guess mtVector and mtRefVector provide simple intuitive way to access and play with vectors. Simply, we can sort iv1, iv2 and iv3 given index vector of any other sorted vector.

iv1(iv5.ISort());

gets indices that sorts iv5, and access iv1 in the same order.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

Share

About the Author

cMoXIV
Engineer
Australia Australia
No Biography provided

Comments and Discussions

 
Generalhelp help help Pinmemberhaider prolog1-Aug-06 3:33 
AnswerRe: help help help PinmemberMohammed Hossny1-Aug-06 15:07 
QuestionHow to convert from a STL-vector PinmemberFinEngineer8-Dec-04 7:03 
AnswerRe: How to convert from a STL-vector PinmemberMohammed Hossny8-Dec-04 21:03 
QuestionHow using a vector index to select el. PinmemberFinEngineer1-Dec-04 22:59 
AnswerRe: How using a vector index to select el. PinmemberMohammed Hossny2-Dec-04 13:58 
GeneralRe: How using a vector index to select el. PinmemberFinEngineer2-Dec-04 22:40 
GeneralRe: How using a vector index to select el. PinmemberMohammed Hossny5-Dec-04 1:39 
Generalmatlab error Pinmemberyendluriusha16-Dec-03 18:41 
GeneralBoost multiarray library PinmemberJonathan de Halleux4-Apr-03 4:01 
GeneralRe: Boost multiarray library PinmemberMohammed Hossny4-Apr-03 4:25 
GeneralRe: Boost multiarray library PinmemberJonathan de Halleux4-Apr-03 4:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.141015.1 | Last Updated 4 Apr 2003
Article Copyright 2003 by cMoXIV
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid