matlab菜鸟级问题.求会matlab的.要把一个A=45678变成 b=1 23 45 67 8如果数字很多,不止这8个.该怎么用reshape?[r,c]=size (a)reshape(a,r/2,2)为何出error啊.抱歉.各种菜鸟.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 01:26:41

matlab菜鸟级问题.求会matlab的.要把一个A=45678变成 b=1 23 45 67 8如果数字很多,不止这8个.该怎么用reshape?[r,c]=size (a)reshape(a,r/2,2)为何出error啊.抱歉.各种菜鸟.
matlab菜鸟级问题.求会matlab的.
要把一个
A=4
5
6
7
8
变成 b=1 2
3 4
5 6
7 8
如果数字很多,不止这8个.该怎么用reshape?
[r,c]=size (a)
reshape(a,r/2,2)
为何出error啊.
抱歉.各种菜鸟.

matlab菜鸟级问题.求会matlab的.要把一个A=45678变成 b=1 23 45 67 8如果数字很多,不止这8个.该怎么用reshape?[r,c]=size (a)reshape(a,r/2,2)为何出error啊.抱歉.各种菜鸟.
>> A = [1:8]'
A =
1
2
3
4
5
6
7
8
>> b = reshape(A,2,4)'
b =
1 2
3 4
5 6
7 8
上面是过程,需要注意的是,matlab里面矩阵元素在内存中是按列排的,而你要的b是1~8按行排的4*2的矩阵,那么就只能先把Areshape成2*4的矩阵,然后再转置,才能够得到想要b.
如果数字很多,也类似做.
比如:
>> A=[1:10]'
A =
1
2
3
4
5
6
7
8
9
10
>> r = size(A,1)
r =
10
>> b = reshape(A,2,r/2)'
b =
1 2
3 4
5 6
7 8
9 10
注意得到r的时候必须用size(A,1),也就是得到A的第一维的size,即A的行数!这才是A数组的大小.实际上,size(A)=[10,1].