こんにちは、特定のタイプのスプレッドシートを読み取り、そのデータからベクトルを動的に作成し、そのベクトルをワークスペースに返す関数を作成しようとしています。
私のxlcsは行で構成されています.最初の行にはベクトルの名前になる文字列があり、残りの行にはベクトルを構成する数字が含まれています.
これが私のコードです:
function [ B ] = read_excel(filename)
%read_excel a function to read time series data from spreadsheet
% I get the contents of the first cell to know what to name the vector
[nr, name]=xlsread(filename, 'sheet1','A2:A2');
% Transform it to a string
name_str = char(name);
% Create a filename from it
varname=genvarname(name_str);
% Get the numbers which will make up the vector
A=xlsread(filename,'B2:CT2');
% Create the vector with the corect name and data
eval([varname '= A;']);
end
私が知る限り、ベクトルは正しく作成されていますが、ワークスペースに戻す方法がわかりません。
これは単なるプロトタイプであり、関数がユーザーの選択した nr のベクトルを一度に返すようにしたいので、できれば解決策は不確定な nr のベクトルを返すことができるはずです。
より正確には、ベクトル varname が作成されます。次を追加すると、スクリプトで使用できます。
eval(['plot(',varname,')'])
ベクトルをプロットしますが、私の目的では、スクリプトの実行後も保持するために、ベクトル varname をワークスペースに返す必要があります。