matlab动态数组、队列、堆栈、容器
⼀直以为matlab中没有动态数组,或者类似C++的vector容器的数据结构。其实不然,matlab的数组就是⼀个动态数组,它可以当作vector,或者队列等数据结构使⽤。
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 10matlab数组赋值
上⾯的例⼦可以看出,只要令数组的某⼀个元素为[],就相当于删除了数组中该元素。array(1) = [] 这条语句,就类似于队列的pop()操作,array(end) = [] 相当于堆栈的pop()操作,⽽array(end+1) = 10 就相当于push()操作。
2. 数组的⼀些操作技巧
2.1 在数组中到某个特定元素的索引
a = [1 2 3 3 4 5];
i = find(a==3)
i =
2 3
2.2 数组切⽚
a = [1 2 3 4 5 6];
a(2:4)
ans =
2 3 4
a(a>3)
ans =
4 5 6
⼆维数组切⽚
mat =
11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44
>> mat(2:3, 1:2)
ans =
21 22
31 32
>> mat(mat(:,1)>30, :) ans =
31 32 33 34 41 42 43 44
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论