sbit stream
Show older comments
w= 1 0 1
w= 0 1 1
w= 0 1 0
how came this can be written in straight line
w= 1 0 1 0 1 1 0 1 0
Accepted Answer
More Answers (1)
Walter Roberson
on 24 Apr 2011
It cannot. The first one assigns the row vector [0 1 0] to w, but the second one assigns a row vector of length 9 to w.
If your original data is a 3 x 3 matrix instead, then
w = reshape(w.',1,numel(w));
7 Comments
mahaveer hanuman
on 24 Apr 2011
mahaveer hanuman
on 24 Apr 2011
Walter Roberson
on 24 Apr 2011
What *exactly* do you have for input? And what *exactly* do you want for output?
w = 1 0 1
is not valid MATLAB input.
mahaveer hanuman
on 24 Apr 2011
Oleg Komarov
on 24 Apr 2011
Preallocate before the loop:
w = zeros(1,30*3);
for ...
w(i*3-2:i*3) = ([A(i),B(i),Q(i)]);
end
Walter Roberson
on 24 Apr 2011
N = 30;
w = reshape([reshape(A(1:N),1,N); reshape(B(1:N),1,N); reshape(C(1:N),1,N)], 1, 3*N);
The above does not assume that A, B, or C are row vectors or column vectors. If the shapes are known and consistent, the code can be simplified -- especially if you are putting together _all_ of the vector instead of just a subset of it.
For example, if they are all row vectors and you are using all of them, then
w = [A;B;C]; w = w(:).';
mahaveer hanuman
on 24 Apr 2011
Categories
Find more on Physics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!