how to do this operation to calculate a new matrix ?

2 ビュー (過去 30 日間)
Firas Al-Kharabsheh
Firas Al-Kharabsheh 2016 年 4 月 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
Firas Al-Kharabsheh 2016 年 4 月 30 日
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 ]
Firas Al-Kharabsheh
Firas Al-Kharabsheh 2016 年 4 月 30 日
@CS Researcher

サインインしてコメントする。

その他の回答 (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)
  2 件のコメント
Firas Al-Kharabsheh
Firas Al-Kharabsheh 2016 年 4 月 30 日
give error "Undefined operator '+' for input arguments of type 'cell'"
Matt J
Matt J 2016 年 4 月 30 日
Not for me...

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by