有人可以解释为什么在例子A中的结果是1x6向量(这是有道理的,是我期待的),而在例子B中结果是1x4向量?索引到向量
在示例B中,如果我预先定义newvec的大小为1x6向量,那么结果是正确的1x6向量。只是不理解发生了什么。
实施例A
vec = [0 2 3 0 5 0] %1x6
newvec(vec == 0) = 1 %produces a 1 x 6 vector
实施例B
vec = [0 2 3 0 5 3] %1 x 6
newvec(vec == 0) = 1 %produces a 1 x 4 vector
您的示例没有意义。请为您遇到的问题添加正确的代码。你添加的代码总是给出一个1x6的矢量 – ASantosRibeiro
@ASantosRibeiro:如果你在每个例子之前发出'clear newvec',则不是这样:) –
+1有趣的问题。答案让你知道发生了什么,但只是添加一些东西。如果在工作空间中没有矢量,并且通过分配类似'A(5)= 1'的方式创建它(以前不存在'A'),则matlab将创建一个足以放置'1在第五个元素中,用零填充其余元素。尝试一下。你也可以用这种方式扩展一个矩阵,例如'x = 1:5; x(10)= 1',试试&你应该看到它用零填充元素6-9。我想你可以用类似的方式来思考你的问题,你告诉matlab分配到位置1和4,所以它停在4 – Dan