如何使用具有可变深度的单元数组作为函数的输入

时间:2015-07-09 14:25:44

标签: arrays matlab function global-variables cell

我有一个全局单元数组,其中数据存储在具有可变深度的结构中。假设它具有以下结构:

global table
table{1,1}.data
table{1,2}.sub{1,1}.data
table{1,2}.sub{1,2}.data
table{1,3}.sub{1,1}.sub{1,1}.data
table{1,3}.sub{1,1}.sub{1,2}.data

现在,我想定义一个可以更改table变量数据的函数。问题是,当我使用table{1,2}.sub{1,2}作为我的函数的输入并让我的函数更改数据时,原始table变量中的数据不会更改。 草图:

%function
function changedata(region)
    region.data='banana';
end
%main
changedata(table{1,2}.sub{1,2});

(我还没有找到有关此问题的信息。)

1 个答案:

答案 0 :(得分:1)

您可以在输出中使用相同的参数

%function
function region = changedata(region)
    region.data='banana';
end

%main
table{1,2}.sub{1,2} = changedata(table{1,2}.sub{1,2});

否则你需要一个句柄类Matt mentioned in the comments