converting 3D double matrix to char matrix

3 vues (au cours des 30 derniers jours)
sermet OGUTCU
sermet OGUTCU le 21 Nov 2021
Commenté : sermet OGUTCU le 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. .

Réponse acceptée

DGM
DGM le 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'

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by