Matlab 使用for循环从向量创建矩阵?
例如,我有一个关于使用for循环从向量创建矩阵的简单问题Matlab 使用for循环从向量创建矩阵?,matlab,Matlab,例如,我有一个关于使用for循环从向量创建矩阵的简单问题 A = [1:101]; matrix = [1 2 3 4 ... 50; 51 52 53 54 ... 100; 101 1 2 4 ... 49; 50 51 52 53 ... 100] 谁能告诉我怎么做吗?非常感谢它需要使用循环吗 A= [1 2 3 4 ... 1000]; numberOfColumns = 3; [mat
A = [1:101];
matrix = [1 2 3 4 ... 50;
51 52 53 54 ... 100;
101 1 2 4 ... 49;
50 51 52 53 ... 100]
谁能告诉我怎么做吗?非常感谢它需要使用循环吗
A= [1 2 3 4 ... 1000];
numberOfColumns = 3;
[matrix,padded] = vec2mat(A,numberOfColumns)
输出:
1 2 3
. . .
998 999 1000
我假设除了
A
之外,还有matrix
的行数和列数作为输入,即
A = 1:101;
nRows = 4;
nCols = 50;
请尝试以下操作:
% initialize
matrix = zeros(nCols, nRows); % create it transposed because we'll have to transpose it later because MATLAB is column-major
%figure out how many times we will have to repeat A
nRepeat = ceil(numel(matrix)/numel(A));
% Tile A
A_tiled = repmat(A, 1, nRepeat);
%fill in matrix
matrix(1:end) = A_tiled(1:numel(matrix));
%Finally, transpose
matrix = matrix';
返回
matrix = [1 2 3 4 ... 50;
51 52 53 54 ... 100;
101 1 2 4 ... 49;
50 51 52 53 ... 99]
哪一个尽可能接近矩阵与A的关系如何?是的,通过使用循环。但您的示例中有一些值等于零。从零值开始,我想重置循环以创建。你知道吗?非常感谢。是的,正是我想要的。非常感谢Dan:)@user3727281下次请在你问问题之前先尝试一下这个问题,如果你不能解决问题,请发布你的尝试代码。另外,你的问题很模糊,下次请描述一下你想做什么。从数字中算出并不容易,幸运的是我看到了你所追求的模式。@user3727281也不要忘记接受这个答案,如果它解决了你的问题……亲爱的丹,如果它解决了,我怎么能接受这个答案?请让我知道。@user3727281