如何计算变量底的对数呢?

121次浏览(过去30天)
Tzahi Shukrun
Tzahi Shukrun 2021年10月2日
评论道: Tzahi Shukrun2021年10月2日
这就跟你问声好!
我试着计算不同基数的对数——没有成功。我知道以10为底的对数或e是可以计算的。
例如:在输入log (a,b)后,我收到一个ERROR消息。
我想使用“a”作为一个变化的数字,并使用循环更改它,直到我得到一个好的结果。例如,“a”可以是- 1.05,1.003....
下面就是:
> > = 1.005;
> >日志(2)
使用日志出错
输入参数太多。
你能指导我怎么做吗?

答案(3)

约翰D 'Errico
约翰D 'Errico 2021年10月2日
编辑:约翰D 'Errico 2021年10月2日
写你自己的函数。保存在你的搜索路径。现在你有了。
(日志(10),logb (10))自然对数%
ans = 1×2
2.3026 - 2.3026
[log10 (5), logb (10))% log(10)到以5为底
ans = 1×2
0.6990 - 0.6990
[log2 (3), logb (2))% log(2)到以3为底
ans = 1×2
1.5850 - 1.5850
Logb (16,[2 3 4 5 16])% log(16) to the bases [2,3,4,5,16]
ans = 1×5
4.0000 2.5237 2.0000 1.7227 1.0000
很简单。
函数L = logb(X,底)
% log(X)到base
%如果没有提供Base,则假定为自然对数。
如果(nargin < 2) ||为空(Base)
%默认情况下是自然日志
L = log(X);
其他的
%测试无效的基数
如果any(Base<=0) ||
错误('Base必须为> 0,且~= 1'
结束
L = log(X)./log(Base);
结束
结束

为副总经理
为副总经理 2021年10月2日
在log()的概要中,它没有说它接受两个参数。
对于以2为底,你可以使用log2()
一般来说,只需要记住对数的性质,并使用log()、log10()或log2()来计算任意以n为底的对数。

明星黾
明星黾 2021年10月2日
一般的方法是:
所以:
A = 64
A = 64
日志(a) /日志(2)
Ans = 6
2 ^(日志(a) /日志(2))
Ans = 64
参见维基百科上的文章 对数恒等式的列表 进行进一步的讨论。
1评论
Tzahi Shukrun
Tzahi Shukrun 2021年10月2日
首先,感谢大家的回答。我这样写出来计算出来的。现在我确定matlab没有这个动作的直接命令
我用excel做的,我想知道用matlab的可能性。
再次感谢大家!

登录评论。

类别

了解更多循环和条件语句帮助中心而且文件交换

标签

s manbetx 845


释放

R2018a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!