How to access an individual column from data

161 次查看(过去 30 天)
Hi guys, this might be a simple question but i don't really know how to do it.
I have 10x8 matrix, and want to specify every column besides the first one as: x1,x2,x3,x4,x5,x6,x7. Like, x1 = [...], x2 =[...] etc. Until now i've done it manually by copy-paste the values, but i'm sure there is a much easier way.
Thanks, B!
  2 个评论
Stephen23
Stephen23 2017-11-28
"...i'm sure there is a much easier way."
Yes, there is: use indexing. Indexing is simple, neat, and very efficient. Do NOT magically create or access variable names in a loop:
Betty
Betty 2017-11-28
Can you give me an example of what will be easiest in my way?

请先登录,再进行评论。

回答(2 个)

KSSV
KSSV 2017-11-28
It is not required to name each column by x1, x2....x10.....it is waste of time and not all necessary. Already you have all the data in a matrix form..this is sufficient.
A = rand(10,8) ; % matrix
A(:,1) % gives first column
A(:,7) % gives seventh column
A(:,end) % gives last column ie eight
  5 个评论
Stephen23
Stephen23 2017-11-28
编辑:Stephen23 2017-11-28
@Betty: KSSV did not "rand" your matrix. KSSV used rand as a substitute for the data that you did not give us. Without any data we cannot test code... so KSSV quite sensibly made some fake data using rand.

请先登录,再进行评论。


Stephen23
Stephen23 2017-11-28
编辑:Stephen23 2017-11-28
If mat is your matrix, then something like this:
mat = [...];
out = [...];
for k = 1:size(M,2)
vec = mat(:,k);
... do whatever with vec
out(k) = ... save the output
end
You will need to figure out the require size of the output matrix.
Note that basic MATLAB concepts, such as how to write loops and access data using indexing, are introduced in the introductory tutorials. These tutorials are highly recommended for all beginners:

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by