2
這裏,示例代碼:Matlab的使用多個containers.Map引發指數超過矩陣尺寸誤差
A類:
classdef classA
properties
mapOfB
end
methods
function self = classA(names)
self.mapOfB = containers.Map();
for i = 1:numel(names)
self.mapOfB(names{i}) = classB(names);
end
end
end
end
B類:
classdef classB
properties
mapTest
end
methods
function self = classB(names)
self.mapTest = containers.Map();
for i = 1:numel(names)
self.mapTest(names{i}) = rand(1,3);
end
end
end
end
主腳本:
names = {'one', 'two', 'three', 'four'};
a = classA(names);
a.mapOfB
a.mapOfB.keys
a.mapOfB('one')
a.mapOfB('one').mapTest
a.mapOfB('one').mapTest.keys
a.mapOfB('one').mapTest('one')
控制檯輸出放:
a.mapOfB('one').mapTest.keys
ans =
'four' 'one' 'three' 'two'
a.mapOfB('one').mapTest('one')
Error using subsref
Index exceeds matrix dimensions.
我不明白爲什麼有一個指標超過矩陣尺寸錯誤,當我在地圖調用的地圖項目。這是一個Matlab的限制?
不知道確切的答案,但我想這是某種兩個相關怎樣[的subsref](http://www.mathworks.com.au/help/matlab/ref/subsref .html)和[索引](http://www.mathworks.com.au/help/matlab/matlab_oop/indexed-reference-and-assignment.html)如何在matlab中工作。 – Marcin