reshape a matrix from the text
19 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
Stephen23
2017 年 9 月 23 日
編集済み: Stephen23
2017 年 9 月 23 日
[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 件のコメント
Cedric
2017 年 9 月 23 日
編集済み: Cedric
2017 年 9 月 23 日
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 件のコメント
参考
カテゴリ
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!