how to create type of eye matrix

3 次查看(过去 30 天)
Hello, I have three matrix like:
z1=[5 0 1;7 9 0;10 0 0], z2=[0 1 2;5 8 0;3 9 10] and z3=[81 11 90;12 0 15;20 17 16]. you see that some of values in every matrix are zero. the number of cells that is not zero in z1 is 5 and in z2 is 7 and in z3 is 8. Now I want to make matrix on the basis of the structure of z1, z2 and z3 that has only zero and one like:
[1 1 1 0 1 0 1 0 0(on the basis of z1),0 0 0 0 0 0 0 0 0(on the basis of the number of z2),0 0 0 0 0 0 0 0 0(on the basis of the number of z3);0 0 0 0 0 0 0 0 0(on the basis of the number of z1),0 1 1 1 1 1 1 0 1(on the basis of z2),0 0 0 0 0 0 0 0 0(on the basis of the number of z3);0 0 0 0 0 0 0 0 0(on the basis of the number of z1),0 0 0 0 0 0 0 0 0(on the basis of the number of z2),1 1 1 1 0 1 1 1 1(on the basis of z3)]
Is there any idea and general way to create this matrix?
  1 个评论
dpb
dpb 2014-6-24
Please format the code/data matrices to be legible...
[1 1 1 0 1 0 1 0 0(on the basis of z1),0 0 0 0 0 0 0 0 0(on the basis of the number of z2),...
I can see that the first vector is
>> [z1(:)~=0].'
ans =
1 1 1 0 1 0 1 0 0
>>
but I see no relationship between the rest and the given relationship. You're saying z2-->zeros(1,numel(z2)).
Need better explanation of the logic.

请先登录,再进行评论。

采纳的回答

Mischa Kim
Mischa Kim 2014-6-24
编辑:Mischa Kim 2014-6-24
Fatema, use
z_zero = blkdiag(z1(:)~=0,z2(:)~=0,z3(:)~=0)'

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by