在matlab中x1=x(:,1);x2=x(:,2);是什么意思

 我来答
四种甜蜜350
2019-07-10 · TA获得超过394个赞
知道小有建树答主
回答量:227
采纳率:99%
帮助的人:61.8万
展开全部

根据语境,这行代码的意思是,从x这个矩阵中取出第一列赋给x1,再从x矩阵中取出第二列赋给x2。执行后x1和x2是两个列向量,分别是x这个矩阵第一列和第二列。

解析:这是两条语句写在了一行上。以逗号分隔。第一句x1=x(:,1)和第二句x2=x(:,2)的语法结构是一样的。这里只以第一句为例。

1. 首先是开头的x1=,这里的=号在matlab里面代表赋值。赋值就是把等号右边的值复制给左边的变量。因此x1将会得到等号右边的东西。

2. 等号右边是x(:,1)。这个x在之前就已经定义过,否则单独一句的代码无法执行。按照这里的语境,x是一个二维数组,即矩阵。为方便讲解x我自定义了一个4行4列的矩阵,以它为例子。

3. x后面的小括号是一种数组的索引方法。数组的索引就是取出数组中的某一部分的操作。假如要索引一个二维数组,括号里就要有两个参数(行号和列号)。参数之间用逗号分隔。比如x(3,4)表示取出矩阵x第三行第四列的那个数。在例子中是12。

4. 如果要索引数组的一片区域,可在行或列参数里用开始的行号:结束的行号这种格式表示要取连续的行或列。如x(1:3,3:4) 就表示取出第1行到第3行并且还是第3列到第四列相交的一片区域,这样取出的是一个小矩阵。

5. 重点:如果只要取出一列,就不用限定行。因此在行的参数一栏开始和结束行号都不写,只留下一个冒号,来表示所有行都要保留。于是就有了这种写法x(:,4)。表示取出第四列。得到的是一个列向量。类似的,x(4,:)则表示第四行。

6. x1=x(:,1);x2=x(:,2); 连起来效果就是可以得到两个列向量。加了分号的命令可以写在一行而且没有任何输出。你可以只输入x1回车查看x1的值,也可以到工作空间窗口双击查看变量。最终运行结果如下:

MathWorks是开发Matlab的公司,MathWorks中国上的Matlab文档具有权威性。遇到不会的问题可以查阅官方文档。

参考资料来源:Matlab官方文档 - 数组索引 

参考资料来源:Matlab官方文档 - 矩阵和数组

lhmhz
高粉答主

2022-10-14 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17013

向TA提问 私信TA
展开全部

在matlab中x1=x(:,1);x2=x(:,2);的意思是:

  1. x1=x(:,1)是把x矩阵的第一列数据,赋值给x1变量

  2. x2=x(:,2)是把x矩阵的第二列数据,赋值给x2变量

例如:

>>x = magic(5)

>>x1=x(:,1)

>>x2=x(:,2)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式