matlab中如何任意选取一个矩阵的任意几行几列

如题所述

1、首先在matlab命令行窗口中输入a=[1 2 3;2 3 4;3 4 5;4 5 6],按回车键,新建一个4行4列的新矩阵。

2、通过a(:,1:2)提取矩阵的1,2列,可以根据需要提取某几列。

3、通过a(2:4,:)提取矩阵的2,3,4行,可以根据需要提取某几行。

4、还可以通过a(:,[1 3])提取矩阵的第1,3列,可以按需要提取不连续的几列。

5、通过a([1 3 4],:)提取矩阵的第1,3,4行,可以按需要提取不连续的几行,就完成了。

6、也可以通过a([1 4],[1 3])格式提取想要的矩阵元素。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-06
  通过A函数实现,比如:
  提取40-82行,列数是1-85 。
  x=A(40:82,1:85)。
  data函数说明:
  提取1-10000行,第1列全部
  x=data(1:10000,1)。
第2个回答  推荐于2017-10-14
a =

17 24 1 8 15

23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9

>> b=a(3,:) %第三行
b =

4 6 13 20 22

>> c=a(:,3) %第三列

c =

1

7
13
19
25

选取其他行列方法类似追问

请问如果选取的行和列都是不定的,并且选几行几列也是任意的,不一定是一列或一行,要如何实现呢

追答

用随机数作为index
clc;clear;
mtx=magic(5);
a=randperm(5); %产生随机行、列数目
index=a(1:2);
temp1=randperm(5);
row=sort(temp1(1:a(1)))
temp2=sort(randperm(5));
col=sort(temp2(1:a(2)))
m1=mtx(row,:)%按行组合
m2=mtx(:,col)%按列组合

本回答被提问者和网友采纳
第3个回答  2014-04-23
假设有矩阵A A(1,:)表示第一行的元素 A(:,1)表示第一列 依次类推追问

如果选取的行和列都是不定的呢,并且选几行几列也是任意的,不一定是一列或一行,这有什么命令可以实现吗

追答

你是想选某几个行或列组成新矩阵吗?

追问

嗯,是的,新矩阵的大小是不定的,该怎么实现呢

相似回答