尝试管理轮廓级别时出错?

时间:2017-11-11 21:32:33

标签: matlab octave contourf

这是一个模拟两个带相反电荷的粒子周围电势的代码:

clc; clear; close all;

e_0 = 8.987E-9;                             % Coulomb's constant
xy = [1,2.5; 4,2.5];                        % particle coordinates.
q = [1; -1];                                % particle charge.

sBeg = 0;
sStep = 0.1;
sEnd = 5;
[X,Y] = meshgrid(sBeg : sStep : sEnd);      % generate a 2D-coordinate grid 

V_E = zeros( size(X) );                     % initialise electric potential field.

for i = 1 : numel(q)                        % add potential fields of each charge

  V_E = V_E + e_0 * q(i) ./ hypot( xy(i,1 ) - X, xy(i, 2) - Y );

end

contourf(X,Y, V_E);
ylabel( colorbar, 'Electric Potenial (V)' )

结果:

enter image description here

轮廓密集地集中在颗粒的位置附近,如何传播它们"更均匀,同时保持轴的相同比例?

NB:

我试过了:

hc = contourf(X,Y,V_E);

contourLevels = [ 0 quantile( V_E(:), 10 ) ];
hc.LevelList = contourLevels;

来自here,但我收到以下错误:

  

error: invalid assignment to cs-list outside multiple assignment

我做错了什么?

我在Windows 10上运行Octave-4.2.1。

1 个答案:

答案 0 :(得分:2)

V_E似乎呈指数级增长;因此,获得“线性”外观轮廓图像的最佳选择是绘制其对数。

我想说无论如何这是一个更明智的情节。但是如果你必须报告原始幅度而不是它们的对数,你可以简单地改变颜色条上的'ticklabels'以反映你想要的值,例如..

function scrollify() {
    wp_register_script( 'jquery-scrollify', get_template_directory_uri() . '/js/scrollify/jquery.scrollify.js', array('jquery'));
    wp_enqueue_script( 'jquery-scrollify' );

    wp_register_script( 'jquery-scrollifymin', get_template_directory_uri() . '/js/scrollify/jquery.scrollify.min.js', array('jquery'));
    wp_enqueue_script( 'jquery-scrollifymin' );

    wp_register_script( 'Gruntfile', get_template_directory_uri() . '/js/scrollify/Gruntfile.js', array('jquery'));
    wp_enqueue_script( 'Grundtfile' ); } 

add_action( 'wp_enqueue_scripts', 'scrollify' );