[英]Assign multiple function outputs to a vector using indexing in MATLAB
我有一個簡單的MATLAB函數輸出多個變量:
function [a,b] = MultipleOutputs()
a = 6;
b = 8;
end
我想將兩個輸出變量分配給現有向量中的2個特定元素:
x = ones(1,4);
x(2:3) = MultipleOutputs()
但是,這給了我:
x =
1 6 6 1
代替:
x =
1 6 8 1
我在很多情況下都遇到過這個問題,但從未找到解決方案。
您有2個選擇:
分別輸出向量后將它們連接起來
[a,b] = MultipleOutputs();
x = ones(1,4);
x(2:3) = [a,b];
在輸出之前將向量連接起來
function a = MultipleOutputs()
a(1) = 6;
a(2) = 8;
end
x(2:3) = MultipleOutputs();
當您像在另一個函數中那樣運行MultipleOutputs()
,它僅僅輸出第一個元素,在這種情況下為a
。
因此最終,您的語句x(2:3) = MultipleOutputs()
等效於x(2:3) = 6
。
一個簡單的解決方法是提取所有元素:
[a,b] = MultipleOutputs();
x(2:3) = [a b];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.