按你的提问:
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、祝您好运,相互帮助,相互提高。
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,否则就会超限报错。
train表示你的数据里用来做train的部分。data(train,:) 中提取了data里与train=1相同的那些行。group也是一回事