2012-04-20 2 views
0

확장 찾아보기 테이블을 만들려고합니다. 나는 세포 배열이 내가 원하는 것이라고 생각하지만 확실하지 않다. 구조는 행과 알 수없는 양의 컬럼으로 초기화됩니다. 각 행의 끝에 추가하고 특정 행의 모든 ​​값에 액세스 할 수 있기를 원합니다.컨테이너를 사용하여 해시 테이블을 만들고 사용하십시오. Map

구조 원하는 :

[1] [4,5] [6,7] 
[2] [4,5] [6,7] [3,6] 
... 
[n] [R1,B2] [R2,B2] ... [Rm, Bm] 

이 지금까지

%%% Build the R-table 

n = 360; 
k = {}; 
v = {}; 
for i = 1:n 
    k{end+1} = i; % how would I get n keys without this loop? 
    v{end+1} = {}; % how would I get n values without this loop? 
end 
rTable = containers.Map(k, v); 

%%% add R,B pair to key I 
I = 1; 
R_add = 4; 
B_add = 5; 
current_list_temp = rTable(I); % can I add without using a temp variable? 
current_list_temp{end+1} = {[R_add, B_add]}; 
rTable(I) = current_list_temp; 

%%% read values for Nth pair in the Ith key 
I = 1; 
N = 1; 
temp = rTable(I); % can I read the values without using a temp variable? 
R_read = temp{N}{1}(1); 
B_read = temp{N}{1}(2); 

가이 일을 더 나은 방법이 있나요이 무엇인가? 색인 end에 사용

답변

1

최대 허용 인덱스로 변환하고 당신이 그것을 추가하거나 곱하여을 조작 할 수 있습니다, 그래서 대신

first_empty_cell = ? 
cell{index, first_free_cell} = [4,5] 

cell{index, end+1} = [4,5] 
+0

감사를 시도, 그하지만 시도 셀의 끝은 행의 길이뿐만 아니라 전체 셀의 길이를 제공합니다. – waspinator

관련 문제