Create multiple column vectors by entering a matrix?
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I find myself copy/pasting 3xN matrices into Matlab frequently. When I do paste in the matrix, I eventually like to specify the columns as new variables so that I can use the plot3 command or similar. My current process is as follows:
data = [1 2 3; 1 2 3; 1 2 3];
x = data(:,1);
y = data(:,2);
z = data(:,3);
plot3(x,y,z);
Alternatively, after I paste in data, I plot using the following syntax:
plot3(data(:,1),data(:,2),data(:,3));
I would much prefer a solution such as:
[x,y,z] = [1 2 3; 1 2 3; 1 2 3];
But I know that this does not work. Does anyone have a trick or tip for me to expedite my process?
Thanks!
0 Commenti
Risposta accettata
Kelly Kearney
il 28 Set 2015
data = [1 2 3; 1 2 3; 1 2 3];
data = num2cell(data,1);
[x,y,z] = deal(data{:})
It would be nice if we could somehow combine lines 2 and 3 (i.e. [x,y,z] = deal(num2cell(data,1){:})), but I've never found a neat syntax to do comma separated list expansion in that way.
Più risposte (1)
Stephen23
il 29 Set 2015
Modificato: Stephen23
il 29 Set 2015
Here is an alternative solution. Rather than littering your workspace with unnecessary variables and wasting memory simply create an anonymous function wrapper for plot3:
myplot3 = @(X,varargin) plot3(X(:,1),X(:,2),X(:,3),varargin{:});
This creates no new data variables in your workspace, and gives neater code:
data = [3,2,1;2,0,2;1,2,3];
myplot3(data)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!