数学
matlab中这个是什么意思?s=[2 3 5]; A(s) Sa=[10 20 30]' A(s)=Sa为什么结果是这样的呢?ans =2 3 5Sa =102030A =1 20 30 710 4 6 8A(:,[2 3])=ones(2)A =1 1 1 710 1 1 8

2019-04-01

matlab中这个是什么意思?s=[2 3 5]; A(s) Sa=[10 20 30]' A(s)=Sa为什么结果是这样的呢?
ans =
2 3 5
Sa =
10
20
30
A =
1 20 30 7
10 4 6 8
A(:,[2 3])=ones(2)
A =
1 1 1 7
10 1 1 8
优质解答
matlab中是以列优先的,又因为A是2*4的矩阵.所以A(s)就是A的第2、3、5个元素,也就是第一列的第二个,第2列的第一个,第3列的第一个元素.所以A(s)=Sa,就对应修改了A中的那几个元素
A(:,[2,3])是A中所有行的第2和第3个元素,是一个2*2的矩阵,ones(2)是一个全为1的2*2矩阵,给A(:,[2,3])赋值,就完成了元素的修改
matlab中是以列优先的,又因为A是2*4的矩阵.所以A(s)就是A的第2、3、5个元素,也就是第一列的第二个,第2列的第一个,第3列的第一个元素.所以A(s)=Sa,就对应修改了A中的那几个元素
A(:,[2,3])是A中所有行的第2和第3个元素,是一个2*2的矩阵,ones(2)是一个全为1的2*2矩阵,给A(:,[2,3])赋值,就完成了元素的修改
相关标签: 为什么
相关问答