Convert space separated string table to cell?
Ältere Kommentare anzeigen
Hello :)
I can't seem to figure out how to convert a string table without using a (textscan etc.) loop,
from :
Table = ['A2 6C 33 04 00 81 00 80';'3F 11 65 01 0A '];
to :
Result = {'A2' '6C' '33' '04' '00' '81' '00' '80';'3F' '11' '65' '01' '0A' ' ' ' ' ' '};
Please note that "Table" is fixed-width Nx23 which could simplify things.
FYI, the end-goal is to convert from hex to decimal to cell-table:
Dec = [162 108 51 4 0 129 0 128; 63 17 101 1 10 0 0 0];
1 Kommentar
Akzeptierte Antwort
Weitere Antworten (3)
Azzi Abdelmalek
am 17 Jun. 2014
Table = ['A2 6C 33 04 00 81 00 80';'3F 11 65 01 0A ']
Table(:,3:3:end)=[];
[n,m]=size(Table);
[bb,aa]=meshgrid(1:2:m,1:n);
out=arrayfun(@(x,y) hex2dec(Table(x,y:y+1)),aa,bb)
3 Kommentare
dpb
am 17 Jun. 2014
Very clever, Azzi...I was trying to puzzle out how to get the indices for arrayfun-- meshgrid never crossed my mind here.
Had added the trailing blank to regularize the array; was thinking if could linearize then reshape back and decided to refresh as somebody was bound to have had the bright idea...
Bjoern
am 17 Jun. 2014
Azzi Abdelmalek
am 17 Jun. 2014
Table = ['A2 6C 33 04 00 81 00 80';'3F 11 65 01 0A ']
Table(:,3:3:end)=[];
[n,m]=size(Table);
[bb,aa]=meshgrid(1:2:m,1:n);
out=arrayfun(@(x,y) Table(x,y:y+1),aa,bb,'un',0)
Andrei Bobrov
am 17 Jun. 2014
Bearbeitet: Andrei Bobrov
am 17 Jun. 2014
nn = size(Table,1);
a = cellfun(@(x)regexp(x,'\w*','match'), num2cell(Table,2),'un',0);
n = cellfun(@numel,a);
mm = max(n);
m = mm - n;
b = arrayfun(@(x)[hex2dec(a{x});zeros(m(x),1)]', (1:nn)','un',0);
out = cat(1,b{:});
Azzi Abdelmalek
am 17 Jun. 2014
Bearbeitet: Azzi Abdelmalek
am 17 Jun. 2014
Table = ['A2 6C 33 04 00 81 00 80';'3F 11 65 01 0A ']
[n,m]=size(Table)
Table(:,3:3:end)='/';
ss=regexp(num2cell(Table,2),'/+','split')
out=cellfun(@hex2dec,reshape([ss{:}],[],n)')
Kategorien
Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!