是否可以缩短一个向量形成一个较低的维度?

26日视图(30天)
有办法截断矢量消除最终条款?例如,a =[1, 2, 3, 4, 5, 6, 7, 8, 9),我希望b = [1, 2, 3, 4, 5]。有办法从通过删除表格b的最后四项?

答案(3)

约翰D 'Errico
约翰D 'Errico 约15小时前
编辑:约翰D 'Errico 约15小时前
你有两个选择。首先,你可以提取元素。或者你可以删除您想删除的元素。例如:
V =质数(40)
V = 1×12
2 3 5 7 11 13日17日19日23日29日31日37
现在,过去4个元素。
n = 4;
%这删除V的元素,你想删除,和这样做
%“就地”,在这个意义上我们不分配一个新的向量。
V(结束+(其它:0))= []
V = 1×8
2 3 5 7 11 13 17 19
接下来,我们可以决定提取最后n个元素。我就用V的最后版本。
V =(1:结束- n)
V = 1×4
2 3 5 7
在每种情况下,我们可以看到,最后4 V元素从诉就像我说的,你能想到的第二种情况,我提取的元素我想保存,在第一种情况下,我表示我想删除的元素。
1评论
詹姆斯Tursa
詹姆斯Tursa 约12小时前
编辑:詹姆斯Tursa 约12小时前
澄清,据我所知MATLAB时总是分配新的内存索引分配结果在不同的大小。例如,
> >格式的调试
> > v = 1:10
v =
结构地址= 1 dd33fd5fc0
m = 1
n = 10
公关= 1 dd1e418b20
1 2 3 4 5 6 7 8 9 10
> > v(结束)= []
v =
结构地址= 1 dd33fd7a00
m = 1
n = 9
公关= 1 dd2de51500
1 2 3 4 5 6 7 8 9
您可以看到,即使我们只删除最后一个元素,数据指针公关改变,表明MATLAB分配新的内存,其余的数据副本。也许MATLAB可以更聪明,直接改变了尺寸在这种情况下,因为这只会浪费一个元素的内存,但它没有。删除后的唯一方法元素和保留相同的数据内存块(这是更快因为不涉及数据复制)是通过非官方的侵入变量头和重置尺寸直接通过一个墨西哥人例行公事。这是可能的MATLAB的旧版本,但后来版本的MATLAB隐藏变量从用户的共享数据副本所以即使这不再是可能的。

登录置评。


Dyuman Joshi
Dyuman Joshi 约16小时前
= [1,2,3,4,5,6,7,8,9);
%的术语来截断
n = 4;
b = (1: end-n)
b = 5×1
1 2 3 4 5

diwakar diwakar
diwakar diwakar 约16小时前
你可以尝试这个代码:
= [1,2,3,4,5,6,7,8,9);
b = (1: end-4);

类别

找到更多的在调试和分析帮助中心文件交换

标签

下载188bet金宝搏


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!