我在Matlab中有一个固定大小的数组.当我想插入一个新元素时,我会执行以下操作:
index-1---左移.我想这样做而不使用任何循环.
我不确定我理解你的问题,但我认为你的意思是:
A = [ A(1:pos) newElem A((pos+1):end) ]
Run Code Online (Sandbox Code Playgroud)
这将在数组中的newElem位置之后插入变量(或数组).posA
如果这对您有用,请告诉我!
[编辑]好吧,看起来你实际上只是想将数组用作移位寄存器.你可以这样做:
A = [ A(2:end) newElem ]
Run Code Online (Sandbox Code Playgroud)
这将从第2个到最后的所有元素A,并将您的newElem变量(或数组)添加到结尾.
该circshift功能是另一种解决方案:
B = circshift(A,shiftsize)A按shiftsize元素循环移动数组中的值.shiftsize是整数标量的向量,其中n-th元素指定n数组的-th维度的移位量A.如果元素shiftsize为正,则值A向下(或向右)移动.如果是负数,则值A向上(或向左)移动.如果为0,则不移动该维度中的值.
例:
将第一个维度值向下循环移1,将第二个维度值向左移动1.
Run Code Online (Sandbox Code Playgroud)A = [ 1 2 3;4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 B = circshift(A,[1 -1]); B = 8 9 7 2 3 1 5 6 4