Using 3d matrix inmatlab

1 view (last 30 days)
jana
jana on 29 May 2013
A(:,:,1) =
1 1 0
0 1 1
1 1 1
A(:,:,2) =
1 0 0
0 0 1
0 0 1
I used [r,c,v] = ind2sub(size(A),find(A == 1)); to find r,c,v in matrix A that has a value 1. But I want to place a condition that while A == 1 then I(r,c) = v
for example I(1,1) = {1,2} since for v=1,2 A takes a value 1. Please help me out with a code.

Accepted Answer

Matt J
Matt J on 29 May 2013
Edited: Matt J on 29 May 2013
[m,n,p]=size(A);
s=reshape(1:p,1,1,p);
A=bsxfun(@times,A,s);
  4 Comments
jana
jana on 29 May 2013
l=cellfun(@(c) nonzeros(c).',l,'uni',0); it shows an error message : Input # 2 expected to be a cell array, was double instead.
jana
jana on 29 May 2013
Navermind I fixed it. Thankyou!

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!