cellfunと同じ処理をtableに対して行う方法を教えてください。
9 views (last 30 days)
Show older comments
現在、添付ファイルのようなデータを分割して処理するためにtableをcellに変換し、処理を行っています。
出来ればtableのまま処理を行いたいのですが、何か方法はありますか?
filename = "test_cellfun.txt";
opts = detectImportOptions(filename);
opts.DataLines = [1 inf];
opts.VariableTypes = {'char', 'char'};
input_data = readtable(filename,opts);
x = table2cell(input_data(:,1));
x1 = cellfun(@(x) x(1:8),x,'UniformOutput',false);
x2 = cellfun(@(x) x(9:end),x,'UniformOutput',false);
y = table2cell(input_data(:,2));
y1 = cellfun(@(y) y(1:8),x,'UniformOutput',false);
y2 = cellfun(@(y) y(9:end),x,'UniformOutput',false);
0 Comments
Accepted Answer
Atsushi Ueno
on 5 Aug 2022
> 出来ればtableのまま処理を行いたいのですが、何か方法はありますか?
filename = "test_cellfun.txt";
opts = detectImportOptions(filename);
opts.DataLines = [1 inf];
opts.VariableTypes = {'char', 'char'};
opts.VariableNames = {'x', 'y'}; % Warningが出るので適当な変数名を追記しました
input_data = readtable(filename,opts)
rowfun(@myfun,input_data,'NumOutputs',4,'OutputVariableNames',{'x1' 'x2' 'y1' 'y2'})
function [x1 x2 y1 y2] = myfun(x,y)
x1 = x{:}(1:8);
x2 = x{:}(9:end);
y1 = y{:}(1:8);
y2 = y{:}(9:end);
end
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!