MATLAB使用reshape函数的时候出了问题 要执行 RESHAPE,请勿更改元素数目.

k= 1;
for i = 1:20
for j = 1:30
p(k) = k;
k=k+1;
end
end
a = reshape(k,30,20);

报错:错误使用 reshape
要执行 RESHAPE,请勿更改元素数目。
这是为什么?

1、首先打开matlab,在命令行窗口中输入help reshape,对reshape有一个认识,如下图所示。

2、这时输入reshape([1:18],[3 3 2]),如下图所示。

3、reshape([1:18],[3 3 2])中的[1:18]意思是数组1--18,后边[3 3 2]意思是将数组分为3行、3列、2页。

4、最后查看二维数组:[9 8 7 1 2 3 5 4 6;10 11 12 13 14 15 16 17 18],如下图所示就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
k就孤零零一个元素你怎么可能用reshape把它变成30x20呢追问

打错了- -那个,就是说reshape转制后的矩阵元素数量一定要和原数组一样吗?

追答

什么叫reshape啊?只是改变矩阵的形状,但是面积不能变啊。你把一个3x4的矩阵变成2x6,12x1都可以,但是不可能把1x1的变成30x20啊

本回答被提问者采纳