How to Imorting a text file containig indexes and the coressponding elements of a matrix to matlab?
1 次查看(过去 30 天)
显示 更早的评论
want to get a matrix from a text file that contains the corresponding elements and there indexes.
0 个评论
采纳的回答
Pavan Sahith
2024-6-19
编辑:Pavan Sahith
2024-6-20
Hello Himanshu,
I see that you are looking to import a matrix from a text file containing corresponding elements and their indices. Let's create a sample text file and see how to import it into MATLAB.
As I dont have any text file , I am creating sample.txt with some random data
% Create a sample file
data = [1, 1, 5.5; 1, 2, 6.3; 2, 1, 7.8; 2, 2, 8.1];
writematrix(data, 'sample.txt', 'Delimiter', ',');
To import this text file into MATLAB, you can use the 'readmatrix' function:
data = readmatrix('sample.txt');
then you can extract the indices and values, then populate a matrix accordingly by using a simple 'for' loop :
% Extract indices and values
row_idx = data(:, 1);
col_idx = data(:, 2);
values = data(:, 3);
% Determine the size of the matrix
max_row = max(row_idx);
max_col = max(col_idx);
% Initialize the matrix
matrix = zeros(max_row, max_col);
% Populate the matrix
for i = 1:length(values)
matrix(row_idx(i), col_idx(i)) = values(i);
end
% Display the matrix
disp(matrix);
you can refer to following MathWorks documentation to know more about
I hope this helps you complete your task.
2 个评论
更多回答(1 个)
Walter Roberson
2024-6-20
移动:Walter Roberson
2024-6-20
Use spalloc -- pass in the number of rows, number of columns, and the total number of entries, and get out a sparse matrix that you can then set individual elements using a loop.
Or, just use sparse passing in the row indices, column indices, and corresponding data values: this will construct the entire array in one call.
Just don't sparse() a partial matrix and then loop setting more elements than were previously allocated -- growing a sparse matrix is expensive.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!