作者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/cn.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