如何在MATLAB中创建该矩阵
我有一个向量,比如如何在MATLAB中创建该矩阵,matlab,matrix,Matlab,Matrix,我有一个向量,比如 A=[4;3;1;6] 我想用a B=[654321;432100;321000;10000] 如何在MATLAB中实现这一点?列数等于A的最大值。这里有两种方法:一种是矢量化,另一种是循环 A=[4;3;1;6]; B = max(bsxfun(@minus, sort(A, 'descend'), 0:(max(A)-1)), 0); 或 结果: B = 6 5 4 3 2 1 4 3 2 1 0 0 3
A=[4;3;1;6]
我想用a
B=[654321;432100;321000;10000]代码>
如何在MATLAB中实现这一点?列数等于A的最大值。这里有两种方法:一种是矢量化,另一种是循环
A=[4;3;1;6];
B = max(bsxfun(@minus, sort(A, 'descend'), 0:(max(A)-1)), 0);
或
结果:
B =
6 5 4 3 2 1
4 3 2 1 0 0
3 2 1 0 0 0
1 0 0 0 0 0
问题还不清楚。是B存储A中元素的索引(因为A只有4个元素,而maltab中没有0索引)。我不清楚你希望得到的A和B之间的关系。循环有什么问题?循环是非常有用的东西。在这种情况下,循环可能是最合乎逻辑的使用方式。您希望列数为固定值,还是等于a
的最大值?你试过什么吗?你有代码吗?我看到你有多个问题的答案都很好,但没有一个答案被标记为已接受。这是在你目前的声誉水平上,你唯一可以感谢回答者花时间解决你的问题的方法。当你发现答案解决了你的问题时,请考虑把它标记为被接受。
B =
6 5 4 3 2 1
4 3 2 1 0 0
3 2 1 0 0 0
1 0 0 0 0 0