我在 Matlab 中有一个二维数组需要转换为一维,而 Matlab 使用列主要表示进行转换。但是,我想使用双重随机矩阵将表示形式转换为行专业。
例如,我有以下二维数组:
M = [1,2,3;4,5,6]
如果我使用 reshape 在一维中表示它
v1 = reshape(M,size(M,1)*size(M,2),1)
我得到一个专栏主要代表:
v1 = [1,4,2,5,3,6]
但是,我想使用这样的置换矩阵:
A = [1,0,0,0,0,0;
0,0,1,0,0,0;
0,0,0,0,1,0;
0,1,0,0,0,0;
0,0,0,1,0,0;
0,0,0,0,0,1];
这样我得到以下行主要表示:
v2 = [1,2,3,4,5,6]'
通过做
v2 = A*v1
我知道我可以通过这样做来获得 v2
v2 = reshape(M',size(M,1)*size(M,2),1)
但我特别关注生成置换矩阵以转换为行主要表示。
如果有人可以帮助我生成这个排列矩阵,那真的很有帮助。提前致谢!