how matlab reads Column vectors
5 ビュー (過去 30 日間)
古いコメントを表示
Hello all,
I have a 3 column vector and applying in a if condition. My question is that how matlab reads coulmn vectors? like is it read from rows to rows or is matlab reads column by column?
W_vc_t=[1 1 1];
W_vc=W_vc_t*vector;
if W_vc(k) == 0
b_watermarked{k} = b{k} - alpha;
else
b_watermarked{k} = b{k} + alpha;
end
where vector consists of around 1000 values
0 件のコメント
採用された回答
Image Analyst
2021 年 2 月 14 日
Let's assume your 3 column vector is something like this:
vector = [1, 2, 3]; % A 3-column "row vector.".
Though it is a 3 column vector with one row, we typically call that a "row vector" since it's only one row with multiple columns.
W_vc = W_vc_t * vector;
would not work because your row vector is on the right side of the other vector.. You'd have
(1 x 3) * (1 x 3)
and the inner dimensions would not match (3 does not match 1). Likewise, this would not work
W_vc = vector * W_vc_t;
because you essentially have
(1 x 3) * (1 x 3)
and the inner dimensions still don't match. I'm sure in your linear algebra class you were taught the trick with holding your fingers horizontal for left matrix and then turning them vertical for the left matrix.
You could do
W_vc = vector .* W_vc_t; % Note the dot before the star.
(1 x 3) .* (1 x 3)
where you you are doing an element-by-element multiplication, not a matrix multiplication. You are doing vector(1) * W_vc_t(1), and vector(2) * W_vc_t(2) and vector(3) * W_vc_t(3) and you'd end up with a 3 element row vector.
It just depends on what you want to do.
3 件のコメント
Image Analyst
2021 年 2 月 15 日
With that line of "if" code, you're using a linear index to a matrix. MATLAB is column-wise and it will return from top left to bottom right, going down rows within a column first, then moving over to the next column to the right until all elements are accessed. Here is a demo:
m = magic(3) % A 3 x 3
for c = 1 : numel(m)
fprintf('m(%d) = %d\n', c, m(c));
end
m =
8 1 6
3 5 7
4 9 2
m(1) = 8
m(2) = 3
m(3) = 4
m(4) = 1
m(5) = 5
m(6) = 9
m(7) = 6
m(8) = 7
m(9) = 2
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!