1

假设我有一些函数import_data(),在这个函数内部我创建了 2 个变量:response_valuesfile_to_get

file_to_get = uigetfile({'*.csv*'}, 'Select the CSV File',...
'\\pfile01thn\bbruffey$\My Documents\analysis data\full files\...
Raw Stats Data full file only');

response_values = zeros(numel(C),numCols);
for i=1:numel(C)
    v = textscan(C{i}, '%s', 'Delimiter',',');
    v = str2double(v{1}(4:end));
    response_values(i,1:numel(v)) = v;
end

然后我需要将这些变量传递给另一个函数MS_Banding_Streaking()

怎么可能做到这一点?(我目前正在使用全局变量,这是非常糟糕的做法。

4

2 回答 2

2

就像是

文件 import_data.m

function response_values, file_to_get = import_data()

file_to_get = uigetfile({'*.csv*'}, 'Select the CSV File',...
'\\pfile01thn\bbruffey$\My Documents\analysis data\full files\...
Raw  Stats Data full file only');

response_values = zeros(numel(C),numCols);
for i=1:numel(C)
    v = textscan(C{i}, '%s', 'Delimiter',',');
    v = str2double(v{1}(4:end));
    response_values(i,1:numel(v)) = v;
end

文件 mainfunc.m

% Stuff before
[vals, filegot] = import_data()
MS_Banding_Streaking(filegot, vals)
% Stuff after
于 2012-08-02T18:21:57.790 回答
1

只需简单地将两个函数写在同一个.m文件中

function import_data()    
file_to_get = uigetfile({'*.csv*'}, 'Select the CSV File',...
'\\pfile01thn\bbruffey$\My Documents\analysis data\full files\...
Raw  Stats Data full file only');

response_values = zeros(numel(C),numCols);
for i=1:numel(C)
    v = textscan(C{i}, '%s', 'Delimiter',',');
    v = str2double(v{1}(4:end));
    response_values(i,1:numel(v)) = v;
end

MS_Banding_Streaking(response_values, file_to_get);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function MS_Banding_Streaking(resp_value, f2g)
% function body
于 2012-08-02T18:37:11.953 回答