【问题标题】:Logarithmic Scale Slider for GUI MATLAB用于 GUI MATLAB 的对数刻度滑块
【发布时间】:2016-02-11 12:50:59
【问题描述】:

我无法在 MATLAB 中为 GUI 创建滑块。一世 真的想要一个范围从 10^-1 到 10^-5 的滑块。但是那个 间隔系数为 0.1。所以滑块会 有一个对数刻度。有谁知道如何解决这个问题?

【问题讨论】:

  • 欢迎来到 SO。你能提供一个minimal reproducible example吗?
  • 基本 MATLAB 中最接近的方法是使用滑块的线性值作为幂。 MATLAB 中不提供非线性滑块刻度,您可能需要深入研究底层 Java 才能找到一些东西。

标签: matlab matlab-guide


【解决方案1】:

我不确定我是否理解正确。如果要从线性刻度制作对数刻度:

对数的定义:

因此,如果您需要从 10^-1 滑动到 10^-5,您希望从滑块中获取一些值并正确转换它。我建议将您的 minmax 设置为 1 和 5(或 -5 和 -1),并在每次滑块回调或仅使用滑块值转换后使用此等式:

y = 10^(-x)

y 是您想要的值,x 是滑块中的值。 在代码中应该类似于:

logValue = 10^(-get(hObject,'Value'));
set(handles.text2,'string',logValue);

通过在您的 gui 中放入一些可以显示您的y 的文本框来检查此方法。

但是如果你想从对数做线性比例:

 y = log(x)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    相关资源
    最近更新 更多