我试图在Octave中运行Kevin Murphy的Bayes Net Toolbox并遇到一些问题.我对贝叶斯网络,Matlab和Octave的新手没有帮助.
这个工具箱最初是为Matlab编写的.有一个大型测试文件test_BNT.m,它通过工具箱中的所有功能运行.大部分的错误消息与之间的差异&,并&&在Matlab和倍频.这很容易解决.但是,我现在遇到了一个新问题,我不知道该怎么做.
例如,qmr1.m脚本创建pearl_inf_engine类的实例,设置一些成员成员变量并将类的实例传递给另一个函数.稍后,将在另一个脚本(parallel_protocol.m)中再次访问成员变量.但是当发生这种情况时,会出现以下消息:
error: invalid index for class
error: evaluating argument list element number 1
Run Code Online (Sandbox Code Playgroud)
似乎从一个脚本到另一个脚本,它忘记了该类有任何成员变量,并在您尝试访问它们时给出无效的索引消息.
这是一个容易解决的常见错误吗?路径或工作目录有问题吗?也许其他人已经将BNT转换为八度,知道该怎么做?
编辑
我能够通过此错误消息.诀窍是阅读安装说明(哈哈)并运行addpath(genpathKPM(<BNT base directory)).genpathKPM.m是BNT中包含的脚本,它将所有必需的目录添加到路径中.
这样做了以后,运行test_BNT.m和变化&,以&&和|到||每个地方,它提供了警戒线.这将清除大部分错误.
但是,我仍然无法运行mpe1.m,mp2.m,mildew1.m和其他一些人.我坚持的新错误消息是:
error: invalid empty index list
error: called from:
error: C:\FullBNT-1.0.7\bnt\BNT\inference\static\@var_elim_inf_engine\find_mpe
.m at line 63, column 5
Run Code Online (Sandbox Code Playgroud)
在这行代码上:
eval(['sCPT.T(', sargs, num2str(jj), ')=0;']);
Run Code Online (Sandbox Code Playgroud)
如果我可以让所有脚本都能运行,我会在这里发布一个答案,并按照我的步骤进行操作. …
现在,我正在使用 Dask 读取大型 csv 文件,并对其进行一些后处理(例如,进行一些数学运算,然后通过某些 ML 模型进行预测并将结果写入数据库)。避免将所有数据加载到内存中,我想按当前大小的块读取:读取第一个块,预测,写入,读取第二个块等。
我使用skiprowsand尝试了下一个解决方案nrows:
import dask.dataframe as dd
read_path = "medium.csv"
# Read by chunk
skiprows = 100000
nrows = 50000
res_df = dd.read_csv(read_path, skiprows=skiprows)
res_df = res_df.head(nrows)
print(res_df.shape)
print(res_df.head())
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
ValueError:样本不够大,无法包含至少一行数据。
sample请增加调用中的 字节数read_csv/read_table
另外,据我了解,它每次都会为所有数据计算二进制掩码([False,False,...,True,...])以查找要加载的行。我们怎样才能更有效地做到这一点?也许使用 dask 中的一些分布式或延迟函数?
我从远程服务器上的工作台上备份了数据库。因此,当我在本地环境中导入它时,出现错误:
错误1193(HY000):未知系统变量'GTID_PURGED'
我正在使用xampp服务器
通过控制台或phpmyadmin导入数据库时遇到相同的错误
我有数据帧(熊猫):
data1 = pandas.DataFrame(['??????, ????', '??? ?????', '????!!'])
Run Code Online (Sandbox Code Playgroud)
如您所见,它包含 unicode 符号(西里尔文):
>>> data1
0
0 ??????, ????
1 ??? ?????
2 ????!!
Run Code Online (Sandbox Code Playgroud)
我尝试从数据框列中删除所有特定符号。 我试过:
data1.apply(replace ???)
data1[0].replace()
Run Code Online (Sandbox Code Playgroud)
甚至还有 lambda 的东西。但我不知道如何replace正确调用。所以我想显示所有符号必须按范围删除:
x in '!@#$%^&*()'
Run Code Online (Sandbox Code Playgroud)
或者
if chr(x) not in range(1040,1072) # chr() of cyrillic
Run Code Online (Sandbox Code Playgroud) 我有一个包含unicode符号(cyrillic)的字符串:
myString1 = '???????'
myString2 = 'Austri?'
Run Code Online (Sandbox Code Playgroud)
我想检查字符串中的所有元素是否都是英文(ASCII).现在我正在使用循环:
for char in myString1:
if ord(s) not in range(65,91):
break
Run Code Online (Sandbox Code Playgroud)
因此,如果我找到第一个非英语元素,我就会打破循环.但是对于给定的示例,您可以看到字符串最后可以包含许多英文符号和unicode.通过这种方式,我将检查整个字符串.此外,如果所有的字符串都是英文的,我仍然会检查每个字符.
有没有更有效的方法来做到这一点?我正在考虑这样的事情:
if any(myString[:]) is not in range(65,91)
Run Code Online (Sandbox Code Playgroud) 在发布实际代码之前,让我告诉您我的计算机的处理器和内存信息是好的:
昨天我发布了关于Lorenz方程(混沌理论中的经典方程),其中一个伟大的人帮助我并展示解决方案,这里是:
function f=lorenz(t,x,a,b,c)
% solve differential equation like this
%dx/dt=a*(y-x)
%dy/dt=-x*z+b*x-y
%dz/dt=xy-c*z/3
f=zeros(3,1);% preallocate result
f(1)=a*(x(2)-x(1));
f(2)=-x(1)*x(3)+b*x(1)-x(2);
f(3)=x(1)*x(2)-c*x(3)/3;
end
Run Code Online (Sandbox Code Playgroud)
和测试程序(脚本):
% test program
x0=[-2 -3.5 21];% initial point
a=input(' enter first coefficient : ');
b=input(' enter second coefficient: ');
c=input(' enter third coefficient : ');
[t,x] = ode45(@(t,x) lorenz(t,x,a,b,c),[0 10],x0);
plot(t,x(:,1),'r');
title(' solution of x part');
grid on
Run Code Online (Sandbox Code Playgroud)
但在运行这些线后
test_program
enter first coefficient : 10
enter second coefficient: 28
enter third coefficient : -8
Run Code Online (Sandbox Code Playgroud)
它还在运行,他说在他的个人电脑上需要2秒钟,所以发生了什么事真的很奇怪?为什么不在我的电脑上编译?即使你看到它我的笔记本电脑有很好的参数,请帮助我 - 即使现在它正在运行所以我应该取消使用ctrl-c.
我找到了这篇文章:链接到 msdn
我想要做的是:加密 Byte() 数组,然后解密它。它有效,但解密的结果不等于原始数组。我的代码:
Dim RMCrypto As New RijndaelManaged()
RMCrypto.Key = Key
RMCrypto.IV = IV
RMCrypto.Padding = PaddingMode.Zeros
Dim dataToDecrypt As Byte() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
Dim encrypted As Byte() = Encrypt(dataToDecrypt, RMCrypto)
Dim roundtrip As Byte() = Decrypt(encrypted, RMCrypto)
Run Code Online (Sandbox Code Playgroud)
在哪里
Private Function Encrypt(ByVal plainText As Byte(), RMCrypto As RijndaelManaged) As Byte()
Dim encrypted() As Byte
Using RMCrypto
' Create a decrytor to perform the …Run Code Online (Sandbox Code Playgroud) 我想以'dd.mm.yyyy'格式保存日期.所以我读到SQL中的日期有不同的格式(通过我使用Visual Studio和SQL Server的方式).
I tried this code:
CREATE TABLE APP(
ID INT NOT NULL,
DT DATE FORMAT 'dd.mm.yyyy',
ADDRESS NVARCHAR (100) ,
PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)
但它返回错误:
'FORMAT'附近的语法不正确.
之后我想使用这段代码:
INSERT INTO APP (ID, DT)
VALUES ('1','22.12.2016')
Run Code Online (Sandbox Code Playgroud) 我在代码中找到了如何使用pip命令:
import subprocess
subprocess.call(["pip", "freeze"])
Run Code Online (Sandbox Code Playgroud)
它在命令提示符下显示所有包.
但它不能这样工作:
import subprocess
subprocess.call(["pip", "freeze", ">", "requirements.txt"])
Run Code Online (Sandbox Code Playgroud)
它不会将其写入文件,它会再次在控制台中打印.
如何以正确的方式运行此命令?
我试着计算通过循环的操作次数为1秒.为此,我记得我开始计算循环并在每次迭代时检查时间的时间.我的想法 - 当这两个时间段的秒数不同时,我打印了多少次循环迭代.
这是我的代码:
#include <ctime>
int main()
{
// For timing
time_t t, tstep;
struct tm* now, *step;
// this time will change at every iteration
t = time(0);
now = localtime(&t);
// save time of the start moment
tstep = t;
step = localtime(&tstep);
// counter of loop cycles
int count = 0;
for (size_t i = 0; i < 1e100 ; i++)
{
// ... here is some calculations
t = time(0);
now = localtime(&t);
count++;
if …Run Code Online (Sandbox Code Playgroud)