How can I extract entries from a matrix and a vector into a new vector in a specific way?

1 回表示 (過去 30 日間)
Hello, I want to extract the entries of a matrix and a vector into a new vector, like this:
M =
0.6000 0.8000
-0.8000 0.6000
t =
0.4000
0.8000
into this vector: v =
0.6000
0.8000
-0.8000
0.6000
0.4000
0.8000
How can I do it? and I would like to know how to do it the other way, like this: if v is given and I want to construct M and t from that v.
Thank you for your help!!

採用された回答

Stephen23
Stephen23 2017 年 11 月 25 日
To get the correct order:
>> [reshape(M.',[],1);t(:)]
ans =
0.60000
0.80000
-0.80000
0.60000
0.40000
0.80000
  2 件のコメント
Saf el
Saf el 2017 年 11 月 25 日
Its working, thanks So if I want to do it the other way. I mean to get M and t from the given vector v. How to do it?
Stephen23
Stephen23 2017 年 11 月 25 日
>> V = [reshape(M.',[],1);t(:)];
>> reshape(V(1:4),2,2).'
ans =
0.60000 0.80000
-0.80000 0.60000
>> V(5:6)
ans =
0.40000
0.80000
>>

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

その他の回答 (1 件)

mounika
mounika 2017 年 11 月 25 日
M = [0.6,0.8;-0.8,0.6]
t = [0.4;0.8]
M = reshape(M,4,1)
v = vertcat(M,t)
Otherway:
M = v(1:4,:);
M = reshape(M,2,2);
t = v(5:6,;);
  2 件のコメント
Saf el
Saf el 2017 年 11 月 25 日
編集済み: Saf el 2017 年 11 月 25 日
Thank you for your help, but I need to have v like this: v =
0.6000
0.8000
-0.8000
0.6000
0.4000
0.8000
not this: v =
0.6000
-0.8000
0.8000
0.6000
0.4000
0.8000

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

カテゴリ

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