[問題] 讀檔Index exceeds matrix dimensions
各位大大好,這幾天遇到很詭異的情況,一直弄不懂
懇求高手幫忙看看這是什麼問題...
我的這個程式碼是一個很大的運算、判斷功能
可是主要是這樣
原本的程式碼:
1 folder_name = 'D:\Brain\Left1~18\';
2 side = '13~18\';
3 folder_name = strcat(folder_name,side);
4 folder = dir(folder_name);
6 for x = 1:size(folder);
8 b2 = folder(x,1).name;
9 pic_name = strcat(folder_name,b2);
10 I = imread(pic_name);
(大量運算)
2000 end
(1) 1~10行都是讀檔 ,之所以會多寫幾步,是因為要批次處理整個資料夾的圖檔
所以這樣寫
(2) 2~3行是加上選擇的子資料夾、4行是將整個資料夾裡頭的檔案存到folder陣列
(3) 8~9行是將folder陣列中所儲存"裡頭圖檔的檔名",加到讀檔的位置裡pic_name
(4) 10行讀完檔之後就開始大量運算
(5) 綠字部分可以無視,跟問題應該沒關
這個程式碼本來一直都沒有問題,讀檔的也一直都很OK
可是因為我想要一次跑多個資料夾
於是多加了一個for迴圈 (也嘗試了swithc、if、while)
結果卻不行!!?
程式碼變成以下這樣:(黃字部分是加的)
for i = 1:2
clear floder_name;clear folder;
if i == 1
folder_name = 'D:\Brain\Left1~18\';
side = '13~18\';
elseif i == 2
folder_name = 'D:\Brain\Right1~15\';
side = '11~15\';
end
folder_name = strcat(folder_name,side);
folder = dir(folder_name);
for x = 1:size(folder);
b2 = folder(x,1).name;
pic_name = strcat(folder_name,b2);
I = imread(pic_name);
(大量運算)
end
end
(紫色那行字我試著加,不過結果沒差)
結果就是
當迴圈的第一次,也就是i = 1的時候,是完全正常的
可是第二次會直接錯,錯在這行
??? Index exceeds matrix dimensions.
folder = dir(folder_name);
我以為是陣列大小的儲存問題,於是我加上了紫色那行,可是沒有用處
而我又做了以下三個嘗試:
(1) for改成while、if、switch...之類的,不過功能一樣所以沒差
(2) 直接把folder改成folder_1、folder_2放在兩個不同的if
兩次迴圈存檔的空間(記憶體)理應完全不同
(所以不會有什麼覆蓋不覆蓋的問題了)
(3) ..我忘了我改什麼了XD 總之沒用
可是一樣都是
??? Index exceeds matrix dimensions.
folder = dir(folder_name);
請問這是什麼問題?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.144
推
09/12 01:31, , 1F
09/12 01:31, 1F
→
09/12 01:31, , 2F
09/12 01:31, 2F
→
09/12 02:00, , 3F
09/12 02:00, 3F
→
09/12 02:55, , 4F
09/12 02:55, 4F
→
09/12 02:55, , 5F
09/12 02:55, 5F
→
09/12 02:55, , 6F
09/12 02:55, 6F
推
09/12 05:02, , 7F
09/12 05:02, 7F
→
09/12 05:03, , 8F
09/12 05:03, 8F
→
09/12 05:03, , 9F
09/12 05:03, 9F
→
09/12 07:17, , 10F
09/12 07:17, 10F
推
09/12 22:23, , 11F
09/12 22:23, 11F
→
09/12 22:29, , 12F
09/12 22:29, 12F
討論串 (同標題文章)