Error Dot indexing is not supported for variables of this type

15 views (last 30 days)
Greetings,
I am new to parfor loop. I got an error "Error Dot indexing is not supported for variables of this type" at "parfor m = 1:End". But I don't understand:
clear
clc
load fitdata.mat
global model1_0 model2_0 model3_0 model4_0 model5_0 model6_0 model7_0
model1_0 = model1;
model2_0 = model2;
model3_0 = model3;
model4_0 = model4;
model5_0 = model5;
model6_0 = model6;
model7_0 = model7;
error = zeros(1,2^9);
End = 2^9;
parfor m = 1:End
decision = permutation(m,2);
error(m) = SSE(decision);
end
k = find(error == min(error),length(error));
disp(permutation(k,2));
Could you give me some hints?
Thank you very much!

Accepted Answer

Walter Roberson
Walter Roberson on 21 Feb 2019
The values of global variables will not be copied to workers . They will be empty on the workers unless you assign inside the worker.
You would be better not using error as aa variable name as it is aa key matlab function
  3 Comments
Devin
Devin on 21 Feb 2019
Just now, I found it is more complicated than we thought. I load fitdata.mat file in my program. However, to load struct type data, I need to provide the class file. Otherwise, I cannot access to the field by dot indexing.
Walter Roberson
Walter Roberson on 21 Feb 2019
class files can be needed to load objects but not to load struct.

Sign in to comment.

More Answers (0)

Categories

Find more on Parallel for-Loops (parfor) in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!