You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
reshape関数のエラーが出ます。
    8 views (last 30 days)
  
       Show older comments
    
data=0:36000;
DATA=reshape(data,600,600)
Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.
 上に示す、コードでエラーが出ます。
まだ、初心者で理解していないところもございますが、
10行36000列あるデータをインポートし、そのデータを600行600列に変換したいと考えています。
上のコードで「data=10:36000;」としても同じようなミスになります。
何が原因で起こるのかわからないです。
そもそものコードが違っているのなら、完成したコードが知りたいです。
よろしくお願い致します。
Accepted Answer
  Kojiro Saito
    
      
 on 1 Sep 2023
        - 
  
- 
    
Direct link to this answer
    
       ⋮ 
    
  	
      
  
- 
  
- 
    
Direct link to this answer
      Edited: Kojiro Saito
    
      
 on 1 Sep 2023
  
      上のコードではdataが0:36000なので1行36001列のデータになっていて、600×600のサイズにリサイズできていないのが原因です。600×600は360000なので。
下記のようにしてみてはいかがでしょうか。
data = rand(10, 36000); % 10行3600列の乱数を生成
DATA = reshape(data, 600,600) % 600行600列に変形
12 Comments
  ナッティング
 on 1 Sep 2023
				
      Moved: Kojiro Saito
    
      
 on 1 Sep 2023
  
			ご回答ありがとうございます。
試してみましたが、変数の最大許容サイズを超えるようです、
何か対策はありますでしょうか。
  Kojiro Saito
    
      
 on 1 Sep 2023
				パソコンの搭載メモリー量はわかりますでしょうか?
WindowsならMATLABのコマンドウィンドウで
memory
コマンドで測定できます。
  Kojiro Saito
    
      
 on 1 Sep 2023
				8GBだと10*36000のdouble型 (約2.7MB)で十分なはずですが、他にワークスペースの変数でメモリーを使用していますかね。
whos
コマンドで変数毎にどれぐらい使用しているの確認できます。
既存の変数名(data)を上書きすれば、メモリー使用量は抑えられますが。
data = reshape(data, 600,600);
  ナッティング
 on 1 Sep 2023
				大変申し訳ありません、記号のミスで大変な数の乱数を生成しておりました。
何度も質問させていただいてご回答いただきありがとうございます。
初手に戻るかもしれませんが、エクセルから取り入れた10*36000のデータには既存の画素値が入っており、乱数を用いると変わってしまいます。
この10*36000のデータを600*600に変換することが目的ですが、詳細として、
1行から600行まではそのままでいいのですが、601行から1200行は隣の11列からの配置にしたいです。1201行からも同じく隣である21列から配置し
これで600*600にしたいと考えておりました。
僕の質問が不足しており、目的を明確にすべきでした。
申し訳ありません。
何卒、よろしくお願い致します。
  Kojiro Saito
    
      
 on 1 Sep 2023
				@ナッティングさん
やりたいことはreshapeよりもforループで回したほうが実現しやすいと思います。さ
とりあえずダミーの画素値(0~255)の値を持つCSVファイルを作ってみました。
10行36000列のデータですが、上記のご説明だと行数が1201以上あるとのことなので、いったん配列を転置しています。下記のコードがサンプルで、resArrに600x600の配列が作成されます。
img = readmatrix('image.csv'); % 10行36000列のダミーデータを読み取り
img2 = img'; % 36000行10列に転置する
resArr = zeros(600, 600); % 600x600の配列の事前割当
% 1~600行、601~1200行、…、と、600行ごとに配列を水平方向につなげていく
nStart = 1:600:35401;
nEnd = 600:600:36000;
for n=1:length(nStart)
    resArr(:, (1+10*(n-1)):10*n) = img2(nStart(n):nEnd(n), :);
end
whos resArr
  Name          Size               Bytes  Class     Attributes
  resArr      600x600            2880000  double              
  Akira Agata
    
      
 on 4 Sep 2023
				
      Edited: Akira Agata
    
      
 on 4 Sep 2023
  
			
  ナッティング
 on 5 Sep 2023
				すみません、
下のコードで、試しているのですが、画像化すると期待通りの答えになりません。
おそらく、これだと1列60行を並べているかと思います。
10列60行だと期待通りの画像が出ると思ったのですが、img2 = mat2cell(img, ones(10, 60)*60);とすると
次を使用中のエラー: mat2cell
入力引数 D1 から D2 は、ベクトルでなければなりません。
という、エラーコードが出ます。これは、どのような対処をすれば良いですか。
何度も何度も申し訳ありません。
img = readmatrix('img7.csv'); %36000行10列
% 600行ごとに区切ってcell配列に入れる
img2 = mat2cell(img, ones(1, 60)*600);
% cellを横方向に並べる
img2 = img2';
% 結合して完成!
    img_out = cell2mat(img2);
  Akira Agata
    
      
 on 8 Sep 2023
				ご所望の処理内容について、もう少し詳しく教えてもらえないでしょうか。
上記のコードを実行すると、以下のように36000×10の配列を600×600に変換できますが、これとはまた異なる処理を想定されてますか?
% データ読み込み(36000×10)
img = readmatrix('https://jp.mathworks.com/matlabcentral/answers/uploaded_files/1473466/img7.csv');
% 600行ごとに区切ってcell配列に入れる
img2 = mat2cell(img, ones(1, 60)*600);
% cellを横方向に並べる
img2 = img2';
% 結合して完成!
img_out = cell2mat(img2);
size(img_out)
ans = 1×2
   600   600
% 念のため確認
imshow(img_out, [])

  Akira Agata
    
      
 on 14 Sep 2023
				% 元データとなる 36000×10の配列を作成
a = 1:360000;
a = reshape(a,10,[])';
% 最初の2行を表示
disp(a(1:2, :))
     1     2     3     4     5     6     7     8     9    10
    11    12    13    14    15    16    17    18    19    20
% 所望の形 (600×600) に配列を変形
b = reshape(a', 600, [])';
% 最初の2行を表示
disp(b(1:2, :))
  Columns 1 through 16
           1           2           3           4           5           6           7           8           9          10          11          12          13          14          15          16
         601         602         603         604         605         606         607         608         609         610         611         612         613         614         615         616
  Columns 17 through 32
          17          18          19          20          21          22          23          24          25          26          27          28          29          30          31          32
         617         618         619         620         621         622         623         624         625         626         627         628         629         630         631         632
  Columns 33 through 48
          33          34          35          36          37          38          39          40          41          42          43          44          45          46          47          48
         633         634         635         636         637         638         639         640         641         642         643         644         645         646         647         648
  Columns 49 through 64
          49          50          51          52          53          54          55          56          57          58          59          60          61          62          63          64
         649         650         651         652         653         654         655         656         657         658         659         660         661         662         663         664
  Columns 65 through 80
          65          66          67          68          69          70          71          72          73          74          75          76          77          78          79          80
         665         666         667         668         669         670         671         672         673         674         675         676         677         678         679         680
  Columns 81 through 96
          81          82          83          84          85          86          87          88          89          90          91          92          93          94          95          96
         681         682         683         684         685         686         687         688         689         690         691         692         693         694         695         696
  Columns 97 through 112
          97          98          99         100         101         102         103         104         105         106         107         108         109         110         111         112
         697         698         699         700         701         702         703         704         705         706         707         708         709         710         711         712
  Columns 113 through 128
         113         114         115         116         117         118         119         120         121         122         123         124         125         126         127         128
         713         714         715         716         717         718         719         720         721         722         723         724         725         726         727         728
  Columns 129 through 144
         129         130         131         132         133         134         135         136         137         138         139         140         141         142         143         144
         729         730         731         732         733         734         735         736         737         738         739         740         741         742         743         744
  Columns 145 through 160
         145         146         147         148         149         150         151         152         153         154         155         156         157         158         159         160
         745         746         747         748         749         750         751         752         753         754         755         756         757         758         759         760
  Columns 161 through 176
         161         162         163         164         165         166         167         168         169         170         171         172         173         174         175         176
         761         762         763         764         765         766         767         768         769         770         771         772         773         774         775         776
  Columns 177 through 192
         177         178         179         180         181         182         183         184         185         186         187         188         189         190         191         192
         777         778         779         780         781         782         783         784         785         786         787         788         789         790         791         792
  Columns 193 through 208
         193         194         195         196         197         198         199         200         201         202         203         204         205         206         207         208
         793         794         795         796         797         798         799         800         801         802         803         804         805         806         807         808
  Columns 209 through 224
         209         210         211         212         213         214         215         216         217         218         219         220         221         222         223         224
         809         810         811         812         813         814         815         816         817         818         819         820         821         822         823         824
  Columns 225 through 240
         225         226         227         228         229         230         231         232         233         234         235         236         237         238         239         240
         825         826         827         828         829         830         831         832         833         834         835         836         837         838         839         840
  Columns 241 through 256
         241         242         243         244         245         246         247         248         249         250         251         252         253         254         255         256
         841         842         843         844         845         846         847         848         849         850         851         852         853         854         855         856
  Columns 257 through 272
         257         258         259         260         261         262         263         264         265         266         267         268         269         270         271         272
         857         858         859         860         861         862         863         864         865         866         867         868         869         870         871         872
  Columns 273 through 288
         273         274         275         276         277         278         279         280         281         282         283         284         285         286         287         288
         873         874         875         876         877         878         879         880         881         882         883         884         885         886         887         888
  Columns 289 through 304
         289         290         291         292         293         294         295         296         297         298         299         300         301         302         303         304
         889         890         891         892         893         894         895         896         897         898         899         900         901         902         903         904
  Columns 305 through 320
         305         306         307         308         309         310         311         312         313         314         315         316         317         318         319         320
         905         906         907         908         909         910         911         912         913         914         915         916         917         918         919         920
  Columns 321 through 336
         321         322         323         324         325         326         327         328         329         330         331         332         333         334         335         336
         921         922         923         924         925         926         927         928         929         930         931         932         933         934         935         936
  Columns 337 through 352
         337         338         339         340         341         342         343         344         345         346         347         348         349         350         351         352
         937         938         939         940         941         942         943         944         945         946         947         948         949         950         951         952
  Columns 353 through 368
         353         354         355         356         357         358         359         360         361         362         363         364         365         366         367         368
         953         954         955         956         957         958         959         960         961         962         963         964         965         966         967         968
  Columns 369 through 384
         369         370         371         372         373         374         375         376         377         378         379         380         381         382         383         384
         969         970         971         972         973         974         975         976         977         978         979         980         981         982         983         984
  Columns 385 through 400
         385         386         387         388         389         390         391         392         393         394         395         396         397         398         399         400
         985         986         987         988         989         990         991         992         993         994         995         996         997         998         999        1000
  Columns 401 through 416
         401         402         403         404         405         406         407         408         409         410         411         412         413         414         415         416
        1001        1002        1003        1004        1005        1006        1007        1008        1009        1010        1011        1012        1013        1014        1015        1016
  Columns 417 through 432
         417         418         419         420         421         422         423         424         425         426         427         428         429         430         431         432
        1017        1018        1019        1020        1021        1022        1023        1024        1025        1026        1027        1028        1029        1030        1031        1032
  Columns 433 through 448
         433         434         435         436         437         438         439         440         441         442         443         444         445         446         447         448
        1033        1034        1035        1036        1037        1038        1039        1040        1041        1042        1043        1044        1045        1046        1047        1048
  Columns 449 through 464
         449         450         451         452         453         454         455         456         457         458         459         460         461         462         463         464
        1049        1050        1051        1052        1053        1054        1055        1056        1057        1058        1059        1060        1061        1062        1063        1064
  Columns 465 through 480
         465         466         467         468         469         470         471         472         473         474         475         476         477         478         479         480
        1065        1066        1067        1068        1069        1070        1071        1072        1073        1074        1075        1076        1077        1078        1079        1080
  Columns 481 through 496
         481         482         483         484         485         486         487         488         489         490         491         492         493         494         495         496
        1081        1082        1083        1084        1085        1086        1087        1088        1089        1090        1091        1092        1093        1094        1095        1096
  Columns 497 through 512
         497         498         499         500         501         502         503         504         505         506         507         508         509         510         511         512
        1097        1098        1099        1100        1101        1102        1103        1104        1105        1106        1107        1108        1109        1110        1111        1112
  Columns 513 through 528
         513         514         515         516         517         518         519         520         521         522         523         524         525         526         527         528
        1113        1114        1115        1116        1117        1118        1119        1120        1121        1122        1123        1124        1125        1126        1127        1128
  Columns 529 through 544
         529         530         531         532         533         534         535         536         537         538         539         540         541         542         543         544
        1129        1130        1131        1132        1133        1134        1135        1136        1137        1138        1139        1140        1141        1142        1143        1144
  Columns 545 through 560
         545         546         547         548         549         550         551         552         553         554         555         556         557         558         559         560
        1145        1146        1147        1148        1149        1150        1151        1152        1153        1154        1155        1156        1157        1158        1159        1160
  Columns 561 through 576
         561         562         563         564         565         566         567         568         569         570         571         572         573         574         575         576
        1161        1162        1163        1164        1165        1166        1167        1168        1169        1170        1171        1172        1173        1174        1175        1176
  Columns 577 through 592
         577         578         579         580         581         582         583         584         585         586         587         588         589         590         591         592
        1177        1178        1179        1180        1181        1182        1183        1184        1185        1186        1187        1188        1189        1190        1191        1192
  Columns 593 through 600
         593         594         595         596         597         598         599         600
        1193        1194        1195        1196        1197        1198        1199        1200
More Answers (0)
See Also
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)


