Change dimension of a matrix
290 ビュー (過去 30 日間)
古いコメントを表示
How to change a matrix dimension 1X131072 to 256X256
2 件のコメント
Azzi Abdelmalek
2012 年 9 月 14 日
編集済み: Azzi Abdelmalek
2012 年 9 月 14 日
131072/256=512 some data will be missing
採用された回答
Andrei Bobrov
2012 年 9 月 14 日
編集済み: Andrei Bobrov
2012 年 9 月 14 日
reshape(yourmatrix,256,256,[]);
or
permute(reshape(yourmatrix,256,256,[]),[2 1 3]);
0 件のコメント
その他の回答 (3 件)
Wayne King
2012 年 9 月 14 日
編集済み: Wayne King
2012 年 9 月 14 日
You cannot because the number of elements will change. 131072 is not equal to 256^2 so what are you going to do with all the left over elements? You can choose a subset of the 131,072 elements in your vector to create a 256x256 matrix.
x = randn(131072,1);
y = x(1:65536);
y = reshape(y,256,256);
You can reshape it to 256x512, or 512x256 using reshape.
0 件のコメント
Image Analyst
2012 年 9 月 14 日
You can change the number of elements if you want. If you have the Image Processing Toolbox, you can use imresize()
0 件のコメント
Ilayat Ali
2023 年 9 月 13 日
You can change the dimensions of a matrix using various functions and techniques, depending on your specific requirements. Here are some common ways to modify the dimensions of a matrix:
1. Reshaping a Matrix: You can change the dimensions of a matrix without changing its data by using the reshape function. This function rearranges the elements of the matrix while preserving their values. Here's how to use it:
A = [1, 2, 3; 4, 5, 6];
B = reshape(A, 3, 2); % Reshape A into a 3x2 matrix
2. Transposing a Matrix: You can change the dimensions of a matrix by transposing it. This swaps the rows and columns. Use the ' operator for matrix transpose:
A = [1, 2, 3; 4, 5, 6];
B = A'; % Transpose A, changing it from a 2x3 matrix to a 3x2 matrix
3. Slicing: You can extract submatrices from a larger matrix to change its dimensions. For example, to extract a specific subset of rows and columns:
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
B = A(1:2, 1:2); % Extract a 2x2 submatrix from A
4. Concatenation: You can concatenate matrices to change their dimensions. For example, to horizontally concatenate two matrices:
A = [1, 2; 3, 4];
B = [5, 6; 7, 8];
C = [A, B]; % Concatenate A and B horizontally, resulting in a 2x4 matrix
5. Resizing: You can change the size of a matrix using functions like zeros, ones, or rand. For example, to change a matrix A to a larger size while keeping its data:
A = [1, 2; 3, 4];
newSize = [3, 3]; % New size
B = zeros(newSize); % Create a new matrix with zeros
B(1:size(A, 1), 1:size(A, 2)) = A; % Copy the data from A to B
These are some common techniques for changing the dimensions of a matrix in MATLAB. The method you choose depends on your specific data manipulation needs.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!