How to concatenate data from two different functions in MATLAB?

2 views (last 30 days)
Konard Adams
Konard Adams on 18 Jan 2022
Edited: Konard Adams on 20 Jan 2022
Part of one function has this:
%% Concatenating Time & Point to Point Angles. Time will be the first column
ConcPTP1 = [TimeP2P1,P2PAng1]; %% getting the datat from here works
Part of the other function has this:
%% Concatenating Time & Angles. Time will be the first column
ConcLin1 = [TimeLin1,AnglesLin1]; %% getting the datat from here works too
Part of the main program has this
%% Collecting all Data
Concat = [ConcPTP1',ConcLin1']'; %%% ***my problem is here*** works only if everything is in one script
This works when everything is a single script but gives errors when I seperate the files as functions then call them from a main program. (The function method is needed). Everything else works fine, I only need to combine all the data from both functions as one ouput file.
Thank you in advance.
  5 Comments
Konard Adams
Konard Adams on 20 Jan 2022
Thank you @Stephen. Fantastic idea. I tried it and it gives the same output. Much simpler way, indeed.
Hence MATLAB community is important. Cheers!

Sign in to comment.

Accepted Answer

Konard Adams
Konard Adams on 20 Jan 2022
Edited: Konard Adams on 20 Jan 2022
How to concatenate data from two different functions in MATLAB?
Functions:
1)
% Before:
% function AnglesLin1 = Line(nx, ny, nz, sx, sy, sz, ax, ay, az,ResLin1,Xstart,Ystart,Zstart,Xend,Yend,Zend)
% correction:
function [AnglesLin1,ConcLin1] = Line(nx, ny, nz, sx, sy, sz, ax, ay, az,ResLin1,Xstart,Ystart,Zstart,Xend,Yend,Zend)
2)
% Before:
% function AnglesPTP1 = Point(X, Y, Z, nx, ny, nz, sx, sy, sz, ax, ay, az,iniPTP1,condiPTP1)
% correction:
function [AnglesPTP1,ConcPTP1] = Point(X, Y, Z, nx, ny, nz, sx, sy, sz, ax, ay, az,iniPTP1,condiPTP1)
Script:
%% Calling PTP Motion
% Before:
% PTPIKine = Point(X, Y, Z, nx, ny, nz, sx, sy, sz, ax, ay, az,iniPTP1,condiPTP1);
% correction:
[AnglesPTP1,ConcPTP1] = Point(X, Y, Z, nx, ny, nz, sx, sy, sz, ax, ay, az,iniPTP1,condiPTP1);
%% Calling Linear Motion
% Before:
% LineIKine = Line(nx, ny, nz, sx, sy, sz, ax, ay, az, ResLin1,Xstart,Ystart,Zstart,Xend,Yend,Zend);
% correction:
[AnglesLin1,ConcLin1] = Line(nx, ny, nz, sx, sy, sz, ax, ay, az, ResLin1,Xstart,Ystart,Zstart,Xend,Yend,Zend);
Now, using the line of code below works to concatenate the needed values:
%% Collecting all Data
% Before:
Concat = [ConcPTP1',ConcLin1']';
% A Simpler way is:
Concat = [ConcPTP1;ConcLin1];

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!