想知道特定的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)
而使所有这些值过大