How to map elements?
    4 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hello everybody,
I am cleaning some code and I came across with the following and I hope you guys can give some extra insigths.
The code is working like shown but I'd like to simplify it somehow.
- Both hil and rom are allocated.
- schema contains indexes. The value of these indexes is no greater than the dimensions of hil and rom.
- hil initially is zeros and I want to fulfill it with values from rom in due position.
for i = 1:M
        for j = 1:N
            hil(i,schema(i,:,j),j) = rom(i,schema(i,:,j),j); 
        end
    end
Thanks,
Rui
0 件のコメント
採用された回答
  Matt J
      
      
 2013 年 1 月 9 日
        
      編集済み: Matt J
      
      
 2013 年 1 月 9 日
  
      I think your current approach is optimum.
The only exception is if you're going to repeat this for different rom, but the same schema. Then I would do
    [ii,jj]=ndgrid(1:N);
    ss=scheme(1:N,:,1:N);
    idx=sub2ind(size(rom),ii(:),ss(:),jj(:) );
and now you can repeatedly do
      hil(idx)=rom(idx)
reusing idx for different rom.
0 件のコメント
その他の回答 (1 件)
参考
カテゴリ
				Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

