Error Attempt to execute SCRIPT join_function as a function:
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm trying to merge 100 tables from a cell array. I'm trying to use loop that calls the function 'join_function' but I get this error. Can anyone help?
join_function:
c = outerjoin(data{1,1},data{1,2},'Keys','time','MergeKeys',true);
loop:
numfiles = 100;
demand = table(1, numfiles);
for j = 1:numfiles
demand_file = sprintf('data{1,%d}', j);
demand{k} = join_function(demand_file);
end
error message from commanf window:
Attempt to execute SCRIPT join_function as a function:
C:\Users\Mark\Downloads\join_function.m
Error in testjoinall (line 14)
demand{k} = join_function(demand_file);
댓글 수: 0
채택된 답변
Jan
2018년 1월 30일
편집: Jan
2018년 1월 30일
The error message is clear: join_function.m is a script file and then it does not accept input arguments. Only functions do this. See https://www.mathworks.com/help/matlab/matlab_prog/scripts-and-functions.html and https://www.mathworks.com/help/matlab/learn_matlab/scripts-and-functions.html .
The code has more problems. sprintf('data{1,%d}', j) creates strings, char vectors to be exact. But in the joining you try to access the contents of an data array. This is something completely different. 'data{1,2}' is a char vector, but does not carry any information about the array called "data".
It is strange, that you create 'data{1,1}' in the loop, but try to access the two elements of the cell array data{1,1} and data{1,2} inside the outerjoin function.
I guess, you want something like this:
numfiles = 100;
demand = table();
for j = 1:numfiles
demand = outerjoin(demand, data{1, j}, 'Keys', 'time', 'MergeKeys', true);
end
댓글 수: 5
Walter Roberson
2018년 1월 31일
Jan's suggested code
demand = table()
created a table with no variables. You would need to omit that line
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Tables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!