簡體   English   中英

使用MATLAB中的索引將多個函數輸出分配給向量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM