理解matlab中的[x:y]结构

时间:2012-05-03 08:07:30

标签: matlab vector

我不确定我是否正确理解了以下代码:

i1=[0:M-1];
c_ind(i1+1)=i1+1;
i1=[0:M-1];
d_ind(i1+1)=i1+1;

我是否正确地假设此代码片段产生两个向量 c_ind d_ind ,它们都包含数字1,2,3,...,M?

非常感谢你的帮助 - 不确定这会让你的进步变得更加艰难;)

最好的 - astriffe

1 个答案:

答案 0 :(得分:0)

以下此代码的Octave输出。是的,它确实产生了两个向量,c_indd_ind,从1M都计算在内。

我不知道为什么会这样写。

>> M = 4
M =  4
>> i1=[0:M-1]
    c_ind(i1+1)=i1+1
    i1=[0:M-1]
    d_ind(i1+1)=i1+1
i1 =

        0        1        2        3

>> c_ind =

        1        2        3        4

>> i1 =

        0        1        2        3

>> d_ind =

        1        2        3        4

这实际上有效的原因是因为语法array([indices]) = [values]values列表映射到indices指定的位置。

>> myvec2([1,4,7]) = [10,20,30]
myvec2 =

       10        0        0       20        0        0       30

>> myvec(5:7) = [10,20,30]
myvec =

        0        0        0        0       10       20       30