'How to' Matrix
情報
この質問は閉じられています。 編集または回答するには再度開いてください。
古いコメントを表示
I have an array with 0 s and 1s.
Example a colomn, 0 ,0 ,0 ,0 , 1.
Now the 1 is on the 5th row, I want to raise that to the first row.
So, in my code i want all the ones to go 4 steps up...
sounds easy, but how :) ?
5 件のコメント
Walter Roberson
2012 年 12 月 12 日
What if there is a 1 in the first 4 columns?
Also, should the new matrix have fewer columns?
TAB
2012 年 12 月 12 日
Then what should be left in 5th column (or row in your words) ?
Jan
2012 年 12 月 12 日
@Student: The question remains, what "raise to the first row" exactly means. At first I guess it is the "first column", but "raising" can be swapping, shifting, circular shifting, sorting, cropping or any procedure I cannot imagine currently.
Hello kity
2012 年 12 月 12 日
Jan
2012 年 12 月 12 日
Thanks for the clarification, Student. And what happens on the right margin? Is the result shorter, filled with zeros or ones or with the value of the last element?
回答 (4 件)
Walter Roberson
2012 年 12 月 12 日
編集済み: Walter Roberson
2012 年 12 月 12 日
0 投票
Have you considered circshift() up by 4 rows?
0 件のコメント
Azzi Abdelmalek
2012 年 12 月 12 日
A=[0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1]
for k=5:length(A)
if A(k)
b=A(k-4:k-1);
A(k-4)=1
A(k-4+1:k)=b
end
end
2 件のコメント
Hello kity
2012 年 12 月 12 日
Azzi Abdelmalek
2012 年 12 月 12 日
A=[0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1]
for k=5:length(A)
if A(k) % If A(k) is equal to 1
b=A(k-4:k-1); % store value from k-4 to k-1 in b
A(k-4)=1 % replace value at k-1 by 1
A(k-4+1:k)=b % shift value stored in b
end
end
Andrei Bobrov
2012 年 12 月 12 日
編集済み: Andrei Bobrov
2012 年 12 月 12 日
other way:
a - your vector - row (eg: [0 0 0 0 1])
n = numel(a);
out = a(hankel(1:n,[n,1:n-1]));
or
out = hankel(a,circshift(a,[0 1]));
1 件のコメント
Hello kity
2012 年 12 月 12 日
Some ideas:
x = [0, 0, 0, 0, 1];
index = find(x, 1, 'first');
y1 = x(index:end);
y2 = [x(index:end), zeros(1, index - 1)];
y3 = [x(index:end), ones(1, index - 1)];
y4 = [x(index:end), repmat(x(end), 1, index - 1)];
y5 = [x(index:end), x(1:index - 1)];
0 件のコメント
この質問は閉じられています。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!