Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 使用for循环从向量创建矩阵?_Matlab - Fatal编程技术网

Matlab 使用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

例如,我有一个关于使用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;
[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