reshape a matrix from the text
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to reshape a matrix from the text file to 45x50 , but when i do the reshape it shows that the number of the elements should not be changes. is there any problem with my coding?
% fileid = fopen ('2016 Sept 7 - Vortex 1_0001')
x = textscan (fileid, '%n %n %n %n','headerlines',3,'delimiter',',')
cc = reshape (x, 44,45)
0 commentaires
Réponses (2)
Stephen23
le 23 Sep 2017
Modifié(e) : Stephen23
le 23 Sep 2017
[fid,msg] = fopen(...,'rt');
assert(fid>=3,msg)
opt = {'HeaderLines',3, 'Delimiter',',', 'CollectOutput',true};
C = textscan(fid,'%n%n%n%n', opt{:});
fclose(fid);
M = C{1};
Note that in this code I display the error message if fopen can't open the file, and also put the textscan options into a cell array to make them easier to keep track of.
0 commentaires
Cedric
le 23 Sep 2017
Modifié(e) : Cedric
le 23 Sep 2017
The output of TEXTSCAN is a row cell array with 4 cells and each one of them contains a numeric array (column vector) of 2250 values.
>> class( x )
ans =
cell
>> size( x )
ans =
1 4
>> class( x{1} )
ans =
double
>> size( x{1} )
ans =
2250 1
It is difficult to guess what you want to achieve with the reshape, but you probably want to merge the content of all cells into a 2250x4 numeric array first:
>> data = [x{:}] ;
>> class( data )
ans =
double
>> size( data )
ans =
2250 4
where x{:} is a comma-separated list (CSL), [..] is a concatenation, and [x{:}] is equivalent to [x{1},x{2},x{3},x{4}].
2 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!