生成布朗运动随机序列代码,求修改。

11 ビュー (過去 30 日間)
falisk
falisk 2022 年 11 月 16 日
回答済み: bejapp 2022 年 11 月 16 日
代码段红色标示的符号是什么意思?运行结果中的警告和错误是指什么?怎样修改?
function data = BrownM( Npoints, Mean, Std, Opt )
dt=1;
% dt时间变化
% 选择项,Opt=1 生成一维随机数, Opt=2 生成二维随机数
if Opt == 1
%%
% standard Brownian motion
data = [0 cumsum(dt^0.5.*random('Normal', Mean, Std, 1, Npoints))];
% 生成服从正态分布的随机数, Mean 均值, Std 方差, 1, Npoints, 一行Npoints个
% cumsum为累加函数
% 画图
figure
plot(0:Npoints, data);
else if Opt == 2
data = cumsum([zeros(1,3);dt^0.5*random('Normal', Mean, Std, Npoints-1,3)]);
% 画图
figure
plot3(data(:,1), data(:,2), data(:,3), 'k');
% 根据数值设定画图点的颜色
pcol = (data-repmat(min(data), Npoints, 1))/...
repmat(max(data)-min(data), Npoints, 1);
% 叠加画图
hold on ;
scatter3(data(:,1), data(:,2), data(:,3),...
10, pcol, 'filled');
% 显示网格
grid on;
hold off;
else
error('Opt = 1 or Opt = 2')
end
end
运行结果如下
dataA=BrownM(Npoints, Mean, Std, Opt); (其中参数值分别为1000, 0, 1 , 2)Warning: Rank deficient, rank = 1, tol = 2.794952e-14. > In BrownM at 22 Error using scatter3 (line 77)C must be a single color, a vector the same length as X, or an M-by-3 matrix.
Error in BrownM (line 26) scatter3(data(:,1), data(:,2), data(:,3),...

採用された回答

bejapp
bejapp 2022 年 11 月 16 日
你这个是pcol设定出了问题,因为原作者的用意无从考证,我就按照自己的想法随便帮你改动了一下
function data = BrownM( Npoints, Mean, Std, Opt )
dt=1;
% dt时间变化
% 选择项,Opt=1 生成一维随机数, Opt=2 生成二维随机数
if Opt == 1
%%
% standard Brownian motion
   data = [0 cumsum(dt^0.5.*random('Normal', Mean, Std, 1, Npoints))];
   % 生成服从正态分布的随机数, Mean 均值, Std 方差, 1, Npoints, 一行Npoints个
   % cumsum为累加函数
   % 画图
   figure
   plot(0:Npoints, data);
else if Opt == 2
        data = cumsum([zeros(1,3);dt^0.5*random('Normal', Mean, Std, Npoints-1,3)]);
        % 画图
        figure
        plot3(data(:,1), data(:,2), data(:,3), 'k');
        % 根据数值设定画图点的颜色
%         pcol = (data-repmat(min(data), Npoints, 1))/...
%             repmat(max(data)-min(data), Npoints, 1);
        pcol = sum(data,2);
        % 叠加画图
        hold on ;
        scatter3(data(:,1), data(:,2), data(:,3),...
            10, pcol, 'filled');
        % 显示网格
        grid on;
        hold off;
else
    error('Opt = 1 or Opt = 2')
    end
end
结果如附图所示

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange描述性统计量 についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!