[問題]load ".mat" 的變數操作問題
已爬文,不過沒有找到類似的問題
(或是我眼瞎了請告訴我)
版本: R2010b
問題: 我自己寫好的.mat裏頭有一個結構變數 A
大概長這樣=>
A(1).name = 'apple';
A(2).name = 'banana';
...
我想在讀進.mat之後,用for 迴圈把A補加上其他的東西,比方
All_fruit_price = [100 45 30 67 ...];
for i = (1:n)
A(i).price = All_fruit_price(1,i);
end
但是在程式碼上這樣寫,code會在A底下出現這樣的警示訊息:
the variable 'A' appears to change size on every loop iteration
雖然就這樣放著不管他也還是能跑
但是code看起來就有一堆黃色蚯蚓實在讓人覺得不是很好
想請問版上各位大大有沒有遇過類似問題及解決的方法,謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.82.182
推
09/02 09:29, , 1F
09/02 09:29, 1F
推
09/02 09:58, , 2F
09/02 09:58, 2F
請問您的意思是像這樣嗎?
for k = (1:size(A,1))
A(k).price = [];
end
我自己這樣寫的時候一樣會在A的地方出現同樣的訊息
還是我搞錯意思了?
※ 編輯: Africakid 來自: 140.116.82.182 (09/02 10:45)
推
09/02 13:06, , 3F
09/02 13:06, 3F
→
09/02 13:06, , 4F
09/02 13:06, 4F
→
09/02 13:06, , 5F
09/02 13:06, 5F
→
09/02 13:07, , 6F
09/02 13:07, 6F
推
09/02 13:53, , 7F
09/02 13:53, 7F
推
09/02 14:15, , 8F
09/02 14:15, 8F
→
09/02 14:15, , 9F
09/02 14:15, 9F
大概了解兩位大大的意思:
---
1. A = struct('name',[],'input',struct('a',[],'b',[]));
2.
3. for i = (1:10)
4. A(i).name = 'GOOD';
5. A(i).input.a = i;
6. A(i).input.b = strcat(num2str(i),'+',num2str(5*i));
7. end
8.
9. save('All.mat','A');
---
如果我把第一行擋住的話,就會出現我原本說的黃色蚯蚓的問題
如果不擋住就OK。
假設上面是一個test.m檔好了
如果我現在創一個test2.m檔如下:
---
1. load('All.mat');
2.
3. for i = (1:size(A,2))
4. A(i).c = A(i).input.a+ 5*A(i).input.a;
5. end
---
那麼在第四行就會有黃色蚯蚓了。
雖然我嘗試在test.m檔裡把A的結構多加一個c
但是好像沒有辦法影響到test2.m的警告出現,想請問一下這事兒有解嗎?
再麻煩各位大大解惑了,謝謝! > <
※ 編輯: Africakid 來自: 140.116.82.182 (09/02 17:09)
推
09/02 18:42, , 10F
09/02 18:42, 10F
→
09/02 18:43, , 11F
09/02 18:43, 11F
→
09/02 18:44, , 12F
09/02 18:44, 12F
→
09/02 18:45, , 13F
09/02 18:45, 13F
→
09/03 21:40, , 14F
09/03 21:40, 14F
→
09/03 21:40, , 15F
09/03 21:40, 15F
推
09/03 21:55, , 16F
09/03 21:55, 16F
→
09/03 21:55, , 17F
09/03 21:55, 17F