extract first row from matrix

3,094 ビュー (過去 30 日間)
Hello Matlab
Hello Matlab 2015 年 2 月 5 日
回答済み: Maryam 2024 年 2 月 13 日
I'm trying to extract the first row from my matrix and put in a vector like [m,n]
my matrix is 2x5 size.
but I'm getting errors, Indexing cannot yield multiple results.
Please any solution to that?

回答 (8 件)

Hikaru
Hikaru 2015 年 2 月 5 日
You have the wrong syntax.
Lets say A is your 2x5 matrix.
A = rand(2,5)
Then to extract the first row, you simply use:
V = A(1,:);
  4 件のコメント
Stephen23
Stephen23 2015 年 2 月 5 日
編集済み: Stephen23 2015 年 2 月 7 日
@Hello Matlab: Your explanation is inconsistent: "...to get the first row to a vector of 1x2..." and "assign those two value to [m,n]" means two quite different things. Do you want to obtain the vector of the first row, OR to get two variables m,n corresponding to the elements of the first row of the matrix? So far Hikaru and I have addressed both of these, so if there is something that is not clear, you need to explain it to us again.
Hector
Hector 2022 年 11 月 18 日
Thank you

サインインしてコメントする。


MathWorks Support Team
MathWorks Support Team 2018 年 11 月 27 日
To extract any row from a matrix, use the colon operator in the second index position of your matrix. For example, consider the following:
A = [1 2 3; 4 5 6];
row1 = A(1,:)
row2 = A(2,:)
“row1” is the first row of “A”, and “row2” is the second row.
For more on basic indexing, see:
  1 件のコメント
Stephen Porter
Stephen Porter 2020 年 11 月 28 日
If you use a for loop to iterate so many times, how do you acess the first elemeent after the loop is complete?

サインインしてコメントする。


Stephen23
Stephen23 2015 年 2 月 5 日
編集済み: Stephen23 2015 年 2 月 5 日
What you are trying to do is create a comma-separated list from a numeric vector. As far as I know, there is no inbuilt way to achieve this. This question has also been asked before , you might find other discussions on this online.
Usually in MATLAB it makes a lot more sense to keep your data together in arrays, so it may not be necessary to do this multiple-assignment. You should consider this. However if it really is necessary to do this multiple assignment, then you could:
  1. Assign individually: n = A(1,1); m = A(1,2);
  2. Assign via a cell array:
B = num2cell(A(1,1:2));
[n,m] = B{:};
Although the first option is much clearer!
EDIT: on re-reading your question, it seems that perhaps all you are after is just the vector of the first row of A, in which case you do not need to assign to two separate values first, as you can just extract the vector directly:
V = A(1,:);
If you just need the row (vector), then there is no need in MATLAB to create intermediate variables m,n.
  1 件のコメント
Lizan Mohammed
Lizan Mohammed 2021 年 3 月 1 日
What is the command if I want to have a matrix that has a column of all elements as 273, %our number of elememts is 38

サインインしてコメントする。


naazneen vhora
naazneen vhora 2018 年 5 月 11 日
if i wanted to extract a certain column without the first element how would i do that.
for example, if my column has the values: 2,3,4,5,6... and i want to access all the values in the column after 2 how would i do that? Yes i mean column for typing reasons i wrote it horizontally.
  1 件のコメント
Stephen23
Stephen23 2018 年 5 月 11 日
Using basic MATLAB indexing:
M(2:end,C)
for column C of matrix M. Basic MATLAB indexing is explained in the introductory tutorials:

サインインしてコメントする。


KAMOOSH BABA SHAIK
KAMOOSH BABA SHAIK 2021 年 4 月 1 日
You can combine indexing with assignment to change array values to equal other elements. For example, this code would change the value of x(1) to x(2):
x(1) = x(2)
Try changing the first column of data to the second column of data.
ans : data(:,1) = data(:,2)

SANTOSH MOHAPATRA
SANTOSH MOHAPATRA 2019 年 4 月 17 日
I have a matrix of dimension(256, 32), means rows=256 and column=32. I want to select 128 rows of the particular matrix and make another Vector of dimension (1, 256*32) means to represent all the elements in a single row. How can I do that?
Please help...can I apply a loop program for it??
  1 件のコメント
Stephen23
Stephen23 2019 年 4 月 17 日
No loop required, just use indexing and reshape (and possibly transpose, depending on the order you want).

サインインしてコメントする。


Abhishek Mishra
Abhishek Mishra 2020 年 10 月 21 日
You can combine indexing with assignment to change array values to equal other elements. For example, this code would change the value of x(1) to x(2):
x(1) = x(2)
Try changing the first column of data to the second column of data.
Answer for this please

Maryam
Maryam 2024 年 2 月 13 日
how we display only 2nd and 5th row of matrix T in matrix X in matlab

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by