我正在引用一个这样的例子我有一个函数来分析向量的元素'input'.如果这些元素具有特殊属性,我将它们的值存储在矢量'output'中.问题是,在乞讨时我不知道它需要存储在'输出'中的元素数量,所以我不知道它的大小.我有一个循环,在里面我绕着向量,通过索引"输入".当我考虑特殊时,这个向量的一些元素捕获'input'的值,并通过如下句子存储在向量'ouput'中:
For i=1:N %Where N denotes the number of elements of 'input'
...
output(j) = input(i);
...
end
Run Code Online (Sandbox Code Playgroud)
问题是,如果我之前没有"声明"'输出',我会收到错误.我不喜欢在输出到输出之前"声明"'输出',因为它存储了我不感兴趣的输入值,我应该想办法删除我存储它的所有值与我有关.有没有人对这个问题有所启发?谢谢.
想象一下
exp(49/200)+(x-49/200)
Run Code Online (Sandbox Code Playgroud)
我想作为函数"roundn"的参数传递任何不是加法或减法的操作所以我的表达式变成了
roundn(exp(roundn(49/200, n)), n) + (x - roundn(49/200, n)
Run Code Online (Sandbox Code Playgroud)
我想要操纵的表达是这样的:
exp(49/200)+exp(49/200)*(x-49/200)+1/2*exp(49/200)*(x-49/200)^2+1/6*exp(49/200)*(x-49/200)^3+1/24*exp(49/200)*(x-49/200)^4+1/120*exp(49/200)*(x-49/200)^5+1/720*exp(49/200)*(x-49/200)^6+1/5040*exp(49/200)*(x-49/200)^7+1/40320*exp(49/200)*(x-49/200)^8+1/362880*exp(49/200)*(x-49/200)^9+1/3628800*exp(49/200)*(x-49/200)^10+1/39916800*exp(49/200)*(x-49/200)^11
Run Code Online (Sandbox Code Playgroud) python string substitution formal-languages formal-semantics
我正在尝试编译这个脚本,但我有这样的信息:
无法在C中找到@INC中的Email/Address.pm(@INC包含:C:/ strawberry/perl/lib C:/ strawberry/perl/site/lib C:\ strawberry\perl\vendor\lib.):/strawberry/perl/lib/Regexp/Common/Email/Address.pm第9行.BEGIN失败 - 编译在C:/ strawberry/perl/lib/Regexp/Common/Email/Address.pm第9行中止.编译失败需要在(eval 1)第1行.BEGIN失败 - 编译在C:\ examples\script2.pl第4行中止.
我不明白,因为我真的有这个根
C:/strawberry/perl/lib/Regexp/Common/Email/Address.pm
有人在我尝试编写我的脚本时知道为什么会出现此错误消息吗?
非常感谢
我试着用这句话:
使用lib'C:/ strawberry/perl/lib/Regexp/Common/Email';
并将这两句话作为评论:
use Regexp::Common qw[Email::Address];
use Email::Address
Run Code Online (Sandbox Code Playgroud)
然后我收到这个错误
Global symbol "%RE" requires explicit package name at C:\examples\script2.pl lin
e 10.Execution of C:\examples\script2.pl aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)
我看了一下perldiag
全局符号"%s"需要显式包名(F)您说过"use strict"或"use strict vars",表示所有变量必须是词法范围(使用"my"或"state"),声明预先使用"我们的",或明确限定说明全局变量所在的包(使用"::").
但我发现它对我来说有点理论上我明白你必须在代码的乞讨时使用句子'use'来使用包.
顺便说一下这是我的代码:
use Regexp::Common qw[Email::Address];
use Email::Address;
while (<>) {
my (@found) = /($RE{Email}{Address})/g;
my (@addrs) = map $_->address, Email::Address->parse("@found");
print "X-Addresses: ", join(", ", …Run Code Online (Sandbox Code Playgroud) 有没有人知道Matlab的插件在命令窗口中自动完成文本?
我不想按标签,因为这对我没有帮助,例如,如果我放在类似的东西之前
>>sprintf('%0.18f %0.18f %0.18\n', [output1; ouput2; output3])
Run Code Online (Sandbox Code Playgroud)
并且我想使用相同的表达式,如果我按Tab键尽可能多地放入'sprintf'而不是之前使用的其余字符串,'('%0.18f%0.18f%0.18 \n',[output1; ouput2; output3])'
我不知道matlab不包含此功能的原因.
我认为应该有比向上箭头键更好的东西,因为想象最后25个条目彼此不同.但是有可能制作一些套装,例如有7个条目以'sprintf'开头.可能是你必须按下箭头键18次以获得以'sprintf'开头的条目.但你会写's',并且有一次你得到'sprintf'条目.我认为自动完成文本应用程序比按向上箭头键18倍更快.
我想把我的变量写成其他变量之间的操作.
例如,如果我把a = c + b 那个值保持在里面的值是c和b之间的和的操作的数值结果.
如果c = 4且b = 2那么,a保持的值是6.
但我希望a保持符号表达式而不是数值.每次我在命令窗口中写一个,matlab cacht c的数值和worspace变量的b的数值,并将它们相加.
通常,如果你写一个,matlab会显示这个变量中的数值.有谁知道如何做到这一点?
我认为Matlab相对于用于显示数字e的小数位数有问题.如果放
>> sprintf('%.30f',exp(1))
ans =
2.718281828459045500000000000000
enter code here
Run Code Online (Sandbox Code Playgroud)
我认为这是错误的,因为数字并包含无限数量的小数位,而不仅仅是本例中matlab显示的16位.有谁知道如何使用Matlab获得更好的准确性?谢谢.
我有兴趣使用或创建一个脚本来获取算法中的错误舍入报告.我希望脚本或类似的东西已经完成......我认为这对于数字电子系统设计是有用的,因为有时需要研究如何根据小数位数考虑的准确度误差.设计.该脚本可以使用3个元素,算法代码,输入和输出.此脚本将逐行显示算法代码的错误.它会使用roundn之类的命令修改算法代码,并比较输出的错误.我将错误定义为
Errorrounding = Output(without rounding) - Output round
Run Code Online (Sandbox Code Playgroud)
例如,我有下一个算法
calculation1 = input*constan1 + constan2 %line 1 of the algorithm
output = exp(calculation1) %line 2 of the algorithm
Run Code Online (Sandbox Code Playgroud)
'input'是n个元素的输入,vector和'output'是输出,'constan1'和'constan2'是常量.n是输入向量的元素数
所以,我会将我的算法放在脚本中,并以自动方式生成下一个算法:
input_round = roundn(input,-1*mdec)
calculation1 = input*constant1+constant2*ones(1,n)
calculation1_round = roundn(calculation1,-1*mdec)
output=exp(calculation1_round)
output_round= roundn(output,-1*mdec)
Run Code Online (Sandbox Code Playgroud)
其中mdec是要考虑的小数位数.最后,脚本提供下一条消息
The rounding error at line 1 is #Errorrounding_calculation1
Run Code Online (Sandbox Code Playgroud)
'#Errorrounding'将是下一个操作的结果Errorrounding_calculation1 = calculation1 - calculation1_round
The rounding error at line 2 is #Errorrounding_output
Run Code Online (Sandbox Code Playgroud)
其中'Errorrounding_output'将是下一个操作Errorrounding_output = output - output_round的结果
有没有人知道是否有类似的东西已经完成,或者Matlab提供了解决一些相关问题的解决方案?谢谢.
也许你已经过了以下情况.你正在工作,你开始一个接一个地运行一个脚本然后突然意识到你已经改变了你感兴趣的变量的值.除了备份工作区之外,还有其他方法来保护变量吗?
有没有办法在工作区中选择您要保护的单个变量?
除了看到命令历史寄存器,有没有被赋予一个特定变量的不同值的历史寄存器?
我正在学习Perl语言。我认为对聊天机器人进行编程是学习和学习该语言的一种有趣方式。
有谁知道任何专门针对Perl语言编程的聊天机器人的手册或网站吗?
谢谢!
有谁知道在哪里可以找到一个非常简单的字符串操作练习集合来练习Perl语言?
我正在学习Perl只是为了使用它所拥有的字符串操作资源.