想知道特定的MATLAB语法是什么意思吗

想知道特定的MATLAB语法是什么意思吗,matlab,Matlab,我想知道确切的DX((j+1):(j+FM(I))是什么意思,意思如下: FM = [3,4,5] CM = [0.0,1.0,2.0,3.0] j = 0; for i = 1:length(FM) DX ( (j+1): (j+FM(i)) ) = ( CM(i+1) - CM (i) )/ FM (i); end 这是一种索引矩阵的方法。当您看到类似于matrix(expr1:expr2)的内容时,它将索引一系列矩阵,从expr1计算到的值开始,到expr2计算到的值结束

我想知道确切的
DX((j+1):(j+FM(I))
是什么意思,意思如下:

FM = [3,4,5]
CM = [0.0,1.0,2.0,3.0]


j = 0;
for i = 1:length(FM)
    DX ( (j+1): (j+FM(i)) )  =  ( CM(i+1) - CM (i) )/ FM (i);
end

这是一种索引矩阵的方法。当您看到类似于
matrix(expr1:expr2)
的内容时,它将索引一系列矩阵,从
expr1
计算到的值开始,到
expr2
计算到的值结束。例如,
DX(1:5)
将给出矩阵的前5个元素(MATLAB使用基于1的索引)。我不确定我是否理解使用
j
的意义,因为它在循环体中从不改变,始终为0,但这将在循环的第一次迭代中给出元素1到3(I=1的FM(I)返回3),在第二次迭代中给出元素1到4(I=2的FM(I)返回4),最后一次迭代中的元素1到5(i=3的FM(i)返回5)。

DX((j+1):(j+FM(i))
是一个向量,它从
DX
j+1
第四个元素开始,包括
j+FM(i)
之前的所有元素

如果
DX=[01 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
j=4
FM=[3 7 5 9]
i=2
,那么
DX((j+1):(j+FM(i))=DX(5:11)
,这是
DX
的第五到第十一个元素,也就是
[4 5 6 7 9 10]

一般来说,
X(A:B)
意味着我们指的是
X
A
th到
B
th元素。因此,如果
A=1
B=2
X(A:B)
指的是X的第一和第二个元素

在您提供的示例中,我们有:

DX((j+1):(j+FM(i))
,这意味着代码从
(j+i)
第th元素通过
(j+FM(i))
第th元素引用
DX
。从代码中,
j=0
i
用于迭代
FM
的长度

总而言之,在循环的第一个过程中,代码引用了
DX(1:3)
,在第二个过程中,代码引用了
DX(1:4)
,在第三个也是最后一个过程中,代码引用了
DX(1:5)

现在,在您发布的代码中,该引用用于在上述索引处为变量
DX
赋值。具体地说,在每次通过循环时,它都试图将
(CM(i+1)-CM(i))/FM(i)
分配给
DX
的索引部分

由于编写代码的方式,前两个循环可能会将值分配给
DX(1:3)
DX(1:4)
,但最后的迭代似乎会通过写入
DX(1:5)
而使所有这些值过大