1

我尝试使用 Matlab (2015a) 从两个 Keysight 示波器中读取数据。为此,我使用带有 spmd 命令的并行计算工具箱。我有一个函数来读取接受签证对象作为参数并返回原始数据的数据。这在 spmd 命令之外可以正常工作(范围 1 和范围 2 是开放签证对象):

scope = {scope1, scope2}
scopedata1 = scopeGetCh1Raw(scope{1});
scopedata2 = scopeGetCh1Raw(scope{2});

我从两个示波器中获取数据。

如果我做:

spmd
    scopedata = scopeGetCh1Raw(scope{labindex});
end

我收到以下错误:

Error detected on workers 1 2.

Caused by:
    Error using icinterface/fprintf (line 147)
    OBJ must be connected to the hardware with FOPEN.
    Error using icinterface/fprintf (line 147)
    OBJ must be connected to the hardware with FOPEN.

任何想法出了什么问题?

干杯尼尔斯

4

1 回答 1

1

spmd在你的块体上操作的工人是独立的进程。我想你需要打电话fopeninside spmd,比如:

spmd
    myScope = fopen(...); % do whatever to open the scope
    scopedata = scopeGetCh1Raw(myScope);
end
于 2015-10-27T13:07:08.197 回答