Convert space separated string table to cell?
Mostrar comentarios más antiguos
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 comentario
Respuesta aceptada
Más respuestas (3)
Azzi Abdelmalek
el 17 de Jun. de 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 comentarios
dpb
el 17 de Jun. de 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
el 17 de Jun. de 2014
Azzi Abdelmalek
el 17 de Jun. de 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
el 17 de Jun. de 2014
Editada: Andrei Bobrov
el 17 de Jun. de 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
el 17 de Jun. de 2014
Editada: Azzi Abdelmalek
el 17 de Jun. de 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)')
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!