MATLAB Answers

reshapeについてのエラーに関して

13 ビュー (過去 30 日間)
大樹 林
大樹 林 2020 年 11 月 2 日
回答済み: michio 2020 年 11 月 4 日
ZN=482;
DOD=csvread('RDOD.csv');
DOD=permute(reshape(DOD,[ZN ZN 3]),[2 1 3]);
この際にエラーが生じて「要素数をRESHAPEするためにへんこうしてはいけません。」と表示され、解決できませんでした。この原因を教えてほしいです。

回答 (1 件)

michio
michio 2020 年 11 月 4 日
reshape は行列の形を変える関数ですので、変更前と変更後で要素の合計数が変わってしまう変更はできません。
例えば 1x10 のベクトルを 2x5 の行列に変更します。
x = 1:10;
reshape(x,2,5)
ans =
1 3 5 7 9
2 4 6 8 10
これは要素数がともに10で同じなので問題ないですが、例えば
reshape(x,1,5)
は x を 1x5 の行列に変更しようとしていますが、要素数が異なるのでエラーとなります。
reshape(DOD,[ZN ZN 3])
でエラーが出ているという事は、DOD という変数の要素数が ZNxZNx3 ではないことを意味しています。

タグ

製品


リリース

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!