matlab矩阵运算 A(B ,: )代表什么意思

2024-12-26 13:22:53
推荐回答(3个)
回答1:

  按你的提问:
  A(B,:)表示取出A中所有元素;
  A(B,)表示取出A中第一列的150个元素。
  提示:
  设A为m行n列;B为s行t列;则:
  A(B,:)表示取出A中的前s行重复排列t次,组成一个s*t行矩阵,
新矩阵的列数与A矩阵相等。
  A(B)表示取出A的第一列前s个数据重复排列t次,组成一个s行t列的新矩阵。
  举例:
  %%例1、m=5,n=5,s=5,t=1.
  %%命令
  A = magic(5);
  B = [1;2;3;4;5];
  a1 = A(B,;)
  b1= A(B)
  结果:
  a1 =
  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
  b1 =
  17
  23
  4
  10
  11
  %%例2、m=5,n=5,s=5,t=2.
  %%命令
  A = magic(5);
  C = [1,1;2,2;3,3;4,4;5,5];
  a2 = A(C,;)
  b2 = A(C)
  a2 =
  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
  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

  b2 =
  17 17
  23 23
  4 4
  10 10
11 11

  %%例3、m=5,n=5,s=2,t=2.
  %%命令
  A = magic(5);
  D = [1,1;2,2];
  a3 = A(D,;)
  b3 = A(D)
  a3 =
  17 24 1 8 15
  23 5 7 14 16
  17 24 1 8 15
23 5 7 14 16

  b3 =
  17 17
  23 23
  注明:
  1、程序已经调试过了,您看到的就是运行的真实结果。
  2、担心会犹豫网页的显示上述代码会产生乱码,建议自行粘帖程序到Matlab命令栏运行
  查看或者新建M文件将命令行粘帖到M文件里面运行 。
  3、祝您好运,相互帮助,相互提高。

回答2:

A(B,:)是一个150*2的矩阵,新矩阵的第n行是A里的第B(n)行;
要使得A(B,:)有结果,B里的每一个元素必须大于等于1且小于等于150,否则会报:下标超限出错。
A(B)是一个150*1的向量,向量里的第n个元素是A里第B(n)个元素;
要使得A(B)有结果,B里的每一个元素必须大于等于1且小于等于300,否则就会超限报错。

回答3:

train表示你的数据里用来做train的部分。data(train,:) 中提取了data里与train=1相同的那些行。group也是一回事