24小时热门版块排行榜    

查看: 361  |  回复: 2

zyj8119

木虫 (著名写手)


[交流] 【求助】一个MATLAB的程序,但是运行有错误

CODE:
function data = BrownM(Npoints,Mean,std,Opt)
dt=1;
if Opt==1
    %%
%standard Brownian motion
  data=[0 cumsum(dt^0.5.*random('Normal',Mean,Std,1,Npoints))];
  figure
  plot(0:Npoints,data);
elseif Opt==2
    figure
    data=cumsum([zeros(1,3);dt^0.5*random('Normal',Mean,std,1,Npoints-1,...
        3)]);
    plot3(data(:,1),data(:,2),data(:,3),'k');
    pcol=(data-repmat(min(data),Npoints,1))./...
        repmat(max(data)-min(data),Npoints,1);
    hold on;
    scatters(data(:,1),data(:,2),data(:,3),...
        10,pcol,'filled');
    grid on;
    hold off;
else
    error('Opt=1 or Opt=2')
end

这个程序是主程序,下面的程序是调用程序:
CODE:
%test BrownM
clc;
Npoints = 1000;
Mean = 0;
Std = 1;
Opt = 1;
dataA = BrownM(Npoints,Mean,Std,Opt);
% Opt=2;
% dataB=BrowM(Npoints,Mean,Std,Opt);

但是运行出现错误:
??? Input argument "x" is undefined.

Error in ==> var at 55
if isinteger(x)

Error in ==> std at 32
y = sqrt(var(varargin{:}));

Error in ==> BrownM at 6
  data=[0 cumsum(dt^0.5.*random('Normal',Mean,Std,1,Npoints))];
回复此楼

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wb1895

木虫 (正式写手)


★ ★
zyj8119(金币+1):谢谢参与
robert2020(金币+1):鼓励应助! 2010-12-14 11:56:24
你这问题出现在这内面,你看看你直接运行这句语言对不对,把下面的变量都输入你下面调用的数值。

data=[0 cumsum(dt^0.5.*random('Normal',Mean,Std,1,Npoints))];
  figure
  plot(0:Npoints,data);


应该没啥大问题,可能是函数没用对吧。
2楼2010-12-14 08:32:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snowman09

金虫 (小有名气)


★ ★ ★
zyj8119(金币+1):谢谢参与
robert2020(金币+2):多谢应助!欢迎常来仿真模拟版交流! 2010-12-14 11:56:07
zyj8119(金币+8):多谢!!! 2010-12-14 13:01:36
增加了一个临时变量,可以运行了


function data = BrownM(Npoints,Mean,std,Opt)
dt=1;
if Opt==1
    %%
%standard Brownian motion
temp=cumsum(dt^0.5.*random('Normal',0,1,1,1000))%做一点小调整就可以运行了
  data=[0, temp];

  figure
  plot(0:Npoints,data);
elseif Opt==2
    figure
    data=cumsum([zeros(1,3);dt^0.5*random('Normal',Mean,std,1,Npoints-1,...
        3)]);
    plot3(data(:,1),data(:,2),data(:,3),'k');
    pcol=(data-repmat(min(data),Npoints,1))./...
        repmat(max(data)-min(data),Npoints,1);
    hold on;
    scatters(data(:,1),data(:,2),data(:,3),...
        10,pcol,'filled');
    grid on;
    hold off;
else
    error('Opt=1 or Opt=2')
end
3楼2010-12-14 08:43:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见