How can I repeat row and column extraction of a matrix until the end of the matrix is reached?
2 ビュー (過去 30 日間)
古いコメントを表示
I have a 1015x2 matrix of data and I'd like to extract the data in 145x2 incraments and add them to another matrix until I've reached the end of the original 1015x2 matrix. The next 145x2 extraction would then be added to 3rd and 4th columns of the new matrix. The resulting matrix should end up being of size 145x14. Thank you!
0 件のコメント
採用された回答
Vandit
2024 年 9 月 18 日
You can achieve this by using a combination of indexing and concatenation in MATLAB. Here's an example of how you can extract and add the data in increments of 145x2 to create a new matrix of size 145x14:
% Original matrix of size 1015x2
originalMatrix = rand(1015, 2);
% Initialize the new matrix
newMatrix = [];
% Extract and add data in increments of 145x2
for i = 1:145:size(originalMatrix, 1)
data = originalMatrix(i:i+144, :);
% Add the data to the new matrix
newMatrix = [newMatrix, data];
end
In the above example, 'originalMatrix' is a matrix with dimensions 1015x2. An empty 'newMatrix' is initialized, and a for loop is used to extract and append data in increments of 145x2. The extracted data is stored in the data variable and concatenated with 'newMatrix' using the concatenation operator [].
After the loop completes, 'newMatrix' will have dimensions 145x14, with each 145x2 increment added as columns to form the new matrix.
For more information on 'Creating, Concatenating, and Expanding Matrices', please refer to the below documentation:
Hope this helps.
2 件のコメント
その他の回答 (1 件)
Voss
2024 年 9 月 18 日
M = rand(1015,2);
incr = 145;
m = size(M,1)/incr;
n = size(M,2);
newM = reshape(permute(reshape(M,[],m,n),[1 3 2]),[],m*n);
2 件のコメント
Voss
2024 年 9 月 18 日
Thanks!
This way's probably more natural:
M = rand(1015,12);
incr = 145;
newM = reshape(permute(reshape(M,incr,[],size(M,2)),[1 3 2]),incr,[]);
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!