matlab:动态数组、队列、堆栈、容器

# matlab

一直以为matlab中没有动态数组,或者类似C++的vector容器的数据结构。其实不然,matlab的数组就是一个动态数组,它可以当作vector,或者队列等数据结构使用。

1
2
3
4
5
6
7
8
array = 1:10;
array =1 2 3 4 5 6 7 8 9 10
array(1) = [];
array =2 3 4 5 6 7 8 9 10
array(end) = [];
array =2 3 4 5 6 7 8 9
array(end+1) = 10;
array =2 3 4 5 6 7 8 9 10

上面的例子可以看出,只要令数组的某一个元素为[],就相当于删除了数组中该元素。array(1) = [] 这条语句,就类似于队列的pop()操作,array(end) = [] 相当于堆栈的pop()操作,而array(end+1)  = 10 就相当于push()操作。

2. 数组的一些操作技巧

2.1 在数组中找到某个特定元素的索引

1
2
3
4
a = [1 2 3 3 4 5];
i = find(a==3)
i =
2 3

Reference

matlab动态数组、队列、堆栈、容器_matlab 堆栈-CSDN博客