How to concatenate data from two different functions in MATLAB?

4 visualizzazioni (ultimi 30 giorni)
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 Commenti
Stephen23
Stephen23 il 20 Gen 2022
Modificato: Stephen23 il 20 Gen 2022
[ConcPTP1',ConcLin1']'
Three ctranpose operations seems a bit inefficient: why not just concatenate with the correct orientation in the first place?
I am guessing something like this might wrk:
[ConcPTP1;ConcLin1]
If that is not possible, replace the complex conjugate transpose with transpose.
Konard Adams
Konard Adams il 20 Gen 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!

Accedi per commentare.

Risposta accettata

Konard Adams
Konard Adams il 20 Gen 2022
Modificato: Konard Adams il 20 Gen 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];

Più risposte (0)

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by