0
我想寫一個函數,該函數接受任意數量值的數組,並在新數組中返回其更改值。接受一個具有n個元素的數組,並將它們返回爲一個數組 - Matlab
function zArray = y(xArray)
zArray = [];
for x = 1:size(xArray,2)
if x >= -2 && x < -1
z = ln(x + 2);
elseif x >= -1 && x < 0
z = (x + 1).^2;
elseif x >= 0 && x <= 2
z = (x + 1)/(x.^2 + 1);
else
z = -10
end
zArray(end + 1) = z;
end
end
然後調用與功能:
[z1, z2, z3] = y([0, 1, -1])
這給了我下面的輸出和消息:
z1 =
1.00000 0.60000 -10.00000
error: element number 2 undefined in return list
我是新來的Matlab和我不知道如何Matlab的for循環和陣列工作。如果我理解正確,我不會正確地將更改後的值添加到應該保持輸出值的數組中,因此無法以這種方式讀取它們,但如果我沒有弄錯,array(end + 1) = z
會將元素z
附加到數組的末尾陣列。
我是否犯了一個以上的錯誤?請指出其中的任何一個,因爲我有麻煩的理解Matlab語法,即使我知道如何編程一些其他語言。
你想從z陣列的後面加改變的值? – Bhoke
您的第一個和第二個'if'和'elseif'語句在這裏是多餘的。如果你解釋要做什麼,我可以幫你 – Bhoke
我想在最後添加它們,所以它們的順序與更改它們之前的順序相同。我想從[x1,x2,...,xn]中實現輸出[f(x1),f(x2),...,f(xn)],其中f是一個區間函數。 – Larisa