作者irene54510 (irene)
看板MATLAB
標題[運算] 請問程式可以跑一次,卻無法跑第二次?
時間Mon Dec 28 03:31:53 2015
我有一個問題想要請問:
我有一個程式碼,當我按下run的時候,可以跑,但是,結果跑出來之後,再按一次,
就會出現error。
可是把matlab關掉之後,又可以跑,我試著抓錯誤,發現裡面有一個程式碼怪怪的。
但是,不知道該怎麼修改,請問是否有人可以協助我?
% theta為 N by 1 的矩陣
% a、b、c為 1 by n 的矩陣
[n]=size(a,2);
[N]=size(theta);
sum=(ones(N,1)*a).*(theta*ones(1,n))-(ones(N,1)*b);
Information =100000* (ones(N,1)*a) .* (ones(N,1)*a) .* ((exp(sum) ./
(1-exp(sum))) .^2) .*((1-(ones(N,1)*c))/((ones(N,1)*c)+exp(sum)));
最後的那個information是否可以告訴我,他是否有錯誤?若有錯誤?為什麼又可以跑第
一次呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.69.46
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1451244715.A.C15.html
1F:→ wxtab019: 把資料先清空再跑第二次看看? 12/28 13:07
2F:→ celestialgod: sum是內建函數的名稱,先把這個改掉試試看 12/28 13:55
3F:→ celestialgod: 另外 [N]=size(theta, 1); 12/28 13:57
4F:→ celestialgod: ((1-(ones(N,1)*c))/((ones(N,1)*c)+exp(sum))) 12/28 13:58
5F:→ celestialgod: 出來是14 x 14的矩陣 12/28 13:58
6F:→ celestialgod: 前面都是 14 X 10 12/28 13:58
7F:→ celestialgod: 更正 出來是 N x N的矩陣 12/28 13:58
8F:→ celestialgod: 前面是 N x n 12/28 13:59
9F:→ celestialgod: 建議都改成用bsxfun處理 12/28 13:59
10F:→ rex0707: 我用matlab都會在最前面加 clear all 12/29 00:33
11F:推 profyang: clear; clc; close all; fclose all; 12/29 01:01
12F:→ irene54510: 謝謝大家,請問celestialgod,我會試試bsxfun,那麼, 12/29 16:39
13F:→ irene54510: 請問有沒有人知道為什麼同一支程式碼,小數據可以跑, 12/29 16:40
14F:→ irene54510: 大數據卻不可以跑呢?例如:n=10可以,但n=1000,卻不行 12/29 16:42
15F:→ celestialgod: 很少有這種情況出現,除非記憶體不足 12/29 18:35
16F:→ celestialgod: 沒有發生錯誤的程式,也無法斷言是什麼原因 12/29 18:36
17F:→ s4300026: 你先看左下角有沒有busy 按複製快捷建(ctrl+c) 有無紅字 12/29 19:00
18F:→ s4300026: 可能是寫法效率很差,造成短時間內跑不出結果。 12/29 19:01
19F:→ irene54510: 謝謝大家,celestialgodu,應該不是記憶題的關係,有 12/30 17:38
20F:→ irene54510: 趣的是,n=10沒有error,n=1000就有error了! 12/30 17:41
21F:→ irene54510: s4300026/,說得很有可能,但我不知道該怎麼改善? 12/30 17:44
22F:→ profyang: s43大講的case是不會出現error的 只會是還沒跑完在那邊 12/30 18:32
23F:→ profyang: busy 你要不要貼一夏你的error code? 12/30 18:32
25F:→ celestialgod: a .^ 2那裏也可以改用bsxfun算,我忘了改XD 12/30 18:38
26F:→ celestialgod: bsxfun(@times, a.^2, ((exp(s) ./(1-exp(s))).^2)) 12/30 18:39
27F:→ celestialgod: 你最後的 /我改成 ./了 12/30 18:40
28F:→ celestialgod: 因為dimension對不起來 12/30 18:41
29F:推 celestialgod: 除非n=N 12/30 18:51
30F:→ irene54510: 謝謝celestialgod您所改寫的程式碼,真的跑的比較快 01/13 17:30
31F:→ celestialgod: 不客氣 01/13 17:39