点索引不支持这种类型的变量在parfor万博1manbetx线没有点的索引。

38视图(30天)
我抓我的头已经有多个小时。在评估。米,我得到一个错误“点索引不支持这种类型的变量“第32行,其中包含“parfo万博1manbetxr I = 1: x1”。在这条线,绝对是0点索引和代码运行好当取代“parfor”与“为”。我想用parfor因为这将大大加快代码的运行时(这需要几小时或几天)。
是怎么回事,如何解决这个问题?
函数[Y, g, avgFullTravelTime, scoreFactor] =评估(P, numInputs)
% P =人口
(x1, y1) = (P)大小;
H = 0 (1 x1);
Vissim = actxserver (“Vissim.Vissim”);
路径=“C: \ \公共文档\ \用户PTV愿景\ PTV Vissim 2022 \皮特校园\校准网络与斜坡的;
文件名= fullfile(路径,“Pitt_Campus_Model_1-6-23(新).inpx ');
Vissim。LoadNet(文件名,假);
expectedTime = [346393479451462494260388145297422311];
measureRange =[48岁,49岁,50岁,52岁,54岁,57岁,59岁,61年,65年,66年,67年,68年,69年);
% NumberRoute[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12日,13日,14日,15日
航线长度= (expectedTime);
段= 21;
分数= 0 (x1);
scoreFactor = 0 (x1,路线);
avgFullTravelTime = 0 (x1,路线);
g = 0 (x1,路线);
totalTravelTime = 0 (x1,段);
vehsPerTimeInt = 0 (x1,段,3);
avgTTPerTimeInt = 0 (x1,段,3);
avgTravelTime = 0 (x1,段);
w = 1:段
Veh_TT_measurement (w) = Vissim.Net.VehicleTravelTimeMeasurements.ItemByKey (w + 47);
结束
parfori = 1: x1
抽搐
vpti1 = 0(段,3);
attpti1 = 0(段,3);
ttt1 = 0(段);
tv1 = 0(段);
att1 = 0(段);
aftt1 = 0(路线);
g1 = 0(路线);
sf1 = 0(路线);
%的代码
结束
2的评论
诺亚
诺亚 2023年6月14日13:49
我做了别人的建议,把身体的一个新函数中的代码。现在,我得到(充满)错误:
错误使用evaluationLoopBody(23行)
索引不支持这种类型的变量。万博1manbetx
线:
Vissim.Net.VehicleInputs.ItemByKey (vin)这里(“AttValue”,“卷(1)”、数量(vin));
主要评价函数的输入是numInputs,目前设置为82,和48 x984矩阵P的双打都是0或1。

登录置评。

答案(2)

雷蒙德·诺里斯
雷蒙德·诺里斯 2023年6月14日17
我的猜测是,它与你的ActiveX服务器,特别是如果 Veh_TT_measurement 是你parfor中使用。看看这将帮助
3评论
诺亚
诺亚 2023年6月16日在38
这答案是领导我走向正确的方向。我以后可能会问更多的问题,但现在我看起来不错。

登录置评。


Edric埃利斯
Edric埃利斯 2023年6月14日在40
移动:图像分析 在《2023年6月14日福音》里
不幸的是,从任何地方在一个错误消息 parfor 循环报道发生在循环开始的地方。这是一个当前限制的方式 parfor 的工作原理。作为一个解决方案,如果你把整个身体的循环到一个单独的功能,你会得到一个更明智的错误消息。
几乎可以肯定的是 @Raymond诺里斯 表明它是与ActiveX对象——如果这无法正确保存和加载,它可能出现的值 [] parfor 循环,然后你会得到错误发布当你试图应用一个dot-reference。
3评论

登录置评。

类别

找到更多的在循环和条件语句帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!