making the value as 0
2 views (last 30 days)
Show older comments
I have a matrix of 100x100,for ex let us assume 3x3 matrix
A=[2 4 5
6 8 9
1 3 4 ]
now i want to make some matrix as zero,i.e
A1=[2 0 5
0 8 9
1 3 0 ]
A2=[0 0 5
6 8 9]
0 3 4]
please help,like these i need 10 values F A1...A10
0 Comments
Accepted Answer
Andrei Bobrov
on 1 Feb 2012
A=[2 4 5
6 8 9
1 3 4 ]
n = numel(A);
A1_10 = repmat(A,[1,1,10]);
k = arrayfun(@(j1)randperm(n,3)',(1:10),'un',0);
A1_10(bsxfun(@plus,[k{:}],0:n:n^2))=0
OR
A=[2 4 5
6 8 9
1 3 4 ]
n = numel(A);
A1_10 = repmat(A,[1,1,10]);
k = cell2mat(arrayfun(@(j1)randperm(n)',(1:10),'un',0));
A1_10(bsxfun(@plus,k(1:3,:),0:n:n^2))=0
OR
A=[2 4 5
6 8 9
1 3 4 ]
n = numel(A);
A1_10 = repmat(A,[1,1,10]);
t = ones(size(A));
for j1 = 1:size(A1_10,3)
p = t;
k = randperm(n);
p(k(1:3)) = 0;
A1_10(:,:,j1) = A1_10(:,:,j1).*p;
end
OR
A=[2 4 5
6 8 9
1 3 4 ]
A1_10 = repmat(A,[1,1,10]);
A1_10(rand(size(A1_10))<.3) = 0;
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!