考慮的MATLAB代碼以下位:在這裏做什麼`end + 1`行?
degree = 6;
out = ones(size(X1(:,1)));
for i = 1:degree
for j = 0:i
out(:, end+1) = (X1.^(i-j)).*(X2.^j);
end
end
我不知道我看到end+1
指數是如何運作的。在此代碼中沒有以前定義的變量end
。
考慮的MATLAB代碼以下位:在這裏做什麼`end + 1`行?
degree = 6;
out = ones(size(X1(:,1)));
for i = 1:degree
for j = 0:i
out(:, end+1) = (X1.^(i-j)).*(X2.^j);
end
end
我不知道我看到end+1
指數是如何運作的。在此代碼中沒有以前定義的變量end
。
寫end
作爲下標等效於在指定的尺寸的陣列中的寫入最後一個元素的索引,如在規定的official documentation:
的
end
功能中的索引也用作最後一個索引表達。
在此情況下,end = (size(x,k))
用作k
指數的一部分。這種使用的例子是X(3:end)
和X(1,1:2:end-1)
。 當使用end
來增長數組時,如X(end+1)=5
,確保首先存在X
。
在你的情況(以粗體突出),out(:, end+1)
指基質out
與的i
每次迭代第二尺寸越來越大。
end
是Matlab中的一個關鍵字,它可以用於數組索引並始終表示該維度中的最後一個元素。
所以out(:, end)
是最後一列。 out(end, :)
是最後一行。 out(1, end)
是第一行中的最後一個元素。
在這裏,當out(:, end+1)
引用一個超過矩陣末尾的列時,該賦值會自動增長該矩陣,並將剛剛計算的向量作爲右側的新列添加。