有人可以解釋爲什麼在例子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