簡體   English   中英

MatLab:函數期間分配的變量可用於另一個函數

[英]MatLab: Variable assigned during function can be used in another function

我有一個輸出q的函數。 此函數將生成矩陣A,以便找到q。 矩陣A是100x100x100,因此運行此代碼需要很長時間,我想用A中的信息進行(大量)其他計算,而不必一遍又一遍地運行該代碼。

有沒有辦法讓q和A(q的尺寸為100x1)可以在另一個函數中訪問而不必每次都運行原始函數?

我雖然使用“全球”,但我不確定它是如何工作的。

您可以使用

assignin('base', 'var1', var1)

在基礎工作空間中分配變量var 這將允許您將其解析為其他功能,它將持續存在。

或者你可以簡單地返回它:

function [other_vars var1] = theFunk(input)

然后在其他函數中使用它可以使它成為全局函數:

global VAR_GLOBAL = var;

並在您的功能使用:

function [stuff] = someOtherFunction(input)
    global VAR_GLOBAL
    % Do some stuff with VAR_GLOBAL

或者只是將其傳遞給您的其他功能:

function [stuff] = someOtherFunction(input, var1)

在我看來,你的功能是做兩件事,需要一些重構......

考慮將計算矩陣A的部分提取到單獨的函數中。 另一個函數將生成的矩陣A作為輸入並計算輸出q 否則稱為“Extract Till You Drop”原則:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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