result in table format or excel format
이전 댓글 표시
I am using following code:
command='netstat -e'
[status,cmdout]=system(command)
Result:
cmdout =
'Interface Statistics
Received Sent
Bytes 4178033452 510183200
Unicast packets 124836 2463020
Non-unicast packets 30732 38568
Discards 0 0
Errors 0 0
Unknown protocols 0
'
The cmdout is char file (1x371).
I wish to get this data in table form (row x column) or in excel format or as matrix. Please guide. Thank you in advance
채택된 답변
추가 답변 (2개)
Eric Sofen
2022년 12월 30일
이동: Rik
2022년 12월 30일
1 개 추천
It's a little circuitous, but you can use writelines to write the char vector to a text file, then use the power of readtable to parse it into a table in MATLAB.
댓글 수: 3
Jeremy Hughes
2022년 12월 30일
편집: Jeremy Hughes
2022년 12월 30일
% command='netstat -e';
% [status,cmdout]=system(command)
Above doesn't work on Answers, so simulating the output:
cmdout = [
"Interface Statistics";
"";
" Received Sent";
""
"Bytes 4178033452 510183200";
"Unicast packets 124836 2463020";
"Non-unicast packets 30732 38568";
"Discards 0 0";
"Errors 0 0";
"Unknown protocols 0"];
writelines(cmdout,"data.txt");
T = readtable("data.txt","FileType","fixedwidth","NumHeaderLines",2)
Kartick
2022년 12월 31일
Jeremy Hughes
2022년 12월 31일
This was introduced in R2022a, so you might be using an earlier version, (or missing the "s" at the end).
Walter Roberson
2022년 12월 30일
You have fixed-width columns. Use array indexing:
topic = string(cmdout(5:end, 1:22));
received = double(string(cmdout(5:end, 23:35)));
sent = double(string(cmdout(5:end, 36:end)));
T = table(topic, received, sent);
댓글 수: 7
Kartick
2022년 12월 31일
Rik
2022년 12월 31일
This indexing assumes a char array split into multiple lines, so that step should still be implemented. I don't understand why you did not receive an error instead of empty arrays.
Walter Roberson
2023년 1월 1일
cmdout = char(regexp(cmdout, '\r?\n', 'split'));
topic = string(cmdout(5:end, 1:22));
received = double(string(cmdout(5:end, 23:35)));
sent = double(string(cmdout(5:end, 36:end)));
T = table(topic, received, sent);
Kartick
2023년 1월 8일
Rik
2023년 1월 8일
If a solution works, you should mark it as accepted answer.
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!