converting 3D double matrix to char matrix

4 Ansichten (letzte 30 Tage)
sermet OGUTCU
sermet OGUTCU am 21 Nov. 2021
Kommentiert: sermet OGUTCU am 21 Nov. 2021
matrix_double_3D= 286 x 1 x 32
such as:
val(:,:,1) =
1
1
.
val(:,:,2) =
2
2
.
I need to convert this matrix to char matrix with adding prefix (G) to the numbers such as:
val(:,:,1) =
G1
G1
val(:,:,2) =
G2
G2
I attached the original matrix_double_3D data. .

Akzeptierte Antwort

DGM
DGM am 21 Nov. 2021
You can do this as a cell array of chars, or you can do it with an actual char array if you really must. Another option would be a string array, if that works for your needs.
S = load('matrix_double_3D.mat');
G = S.GPS_reference_PRN_double_original_epochs_3D;
% as a cell array
Gcl = num2cell(G);
Gcl = cellfun(@(x) sprintf('G%d',x),Gcl,'uniform',false);
Gcl(1:3,:,1:3) % show a sample
ans = 3×1×3 cell array
ans(:,:,1) = {'G1'} {'G1'} {'G1'} ans(:,:,2) = {'G2'} {'G2'} {'G2'} ans(:,:,3) = {'G3'} {'G3'} {'G3'}
% as a fragile char array
% assumes absval of numbers are less than 100
Gch = permute(reshape(sprintf('G%02d',G),3,size(G,1),size(G,3)),[2 1 3]);
Gch(1:3,:,1:3) % show a sample
ans = 3×3×3 char array
ans(:,:,1) = 'G01' 'G01' 'G01' ans(:,:,2) = 'G02' 'G02' 'G02' ans(:,:,3) = 'G03' 'G03' 'G03'

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by