how to do this operation to calculate a new matrix ?

2 次查看(过去 30 天)
IF i have this matrix
A=[ 3 2 0
2 1 1
5 4 0
3 2 0
4 3 1
10 0 0 ]
and i found this matrix
a = [ 5
4
9
5
8
10 ]
and this matrix
b = [2
3
2
2
3
1 ]
i want to find this matrix F_Complete where for k=1:6 if (a(k) + b(k) - 1) == 10 then go back to A(k) and make group of ones depend on the number in the row(k) ( between each group there is zero ) like this
the third row in A = [5 4 0 ] make the condition true then
F_Complete(3,:) = [1 1 1 1 1 0 1 1 1 1]
the five row in A = [ 4 3 1 ] make the condition true then
F_Complete(5,:) = [1 1 1 1 0 1 1 1 0 1]
the last row in A = [ 10 0 0] make the condition true then
F_Complete(6,:) = [1 1 1 1 1 1 1 1 1 1]
then the final answer is
F_Complete = [ 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 ]

采纳的回答

CS Researcher
CS Researcher 2016-4-30
编辑:CS Researcher 2016-4-30
Try this:
N = 10;
m = size(A,1);
% Pre-allocate the F_Complete matrix
F_Complete = zeros(m, N)
for i = 1:m
if a(i)+b(i)-1 == 10
tempVector = [ones(1,A(i,1)) 0 ones(1,A(i,2)) 0 ones(1,A(i,3))];
F_Complete(i,:) = tempVector(1:N);
end
end
Hope this helps!
  2 个评论
Firas Al-Kharabsheh
how to apply this for column where
B=[ 0 0 1 0 1 0 1 4 1 0
10 10 6 5 1 1 1 5 6 10 ]
a1=[ 10 10 7 5 2 1 2 9 7 10 ]
b1 = [1 1 2 1 2 1 2 2 2 1 ]
how to find F_complete_column where the final will be
F_complete_column = [ 1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 0 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1
1 1 0 0 0 0 0 1 0 1 ]

请先登录,再进行评论。

更多回答(1 个)

Matt J
Matt J 2016-4-30
编辑:Matt J 2016-4-30
N=10;
idx=(a+b==N+1);
F_Complete = zeros(m,N);
fun=@(x) x(1:N);
Fc=arrayfun( @(n)[ones(1,n) 0], A(idx,:),'uni',0);
Fc=arrayfun(@(i) fun( [Fc{i,:}]),(1:size(Fc,1))','uni',0);
F_Complete(idx,:)=cell2mat(Fc)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by