Borrar filtros
Borrar filtros

Randomly change certain characters of a character matrix

3 visualizaciones (últimos 30 días)
Nick DeMarchis
Nick DeMarchis el 21 de Mayo de 2019
Editada: Adam el 21 de Mayo de 2019
Hi there! I have a very large (~300,000 by 16) character vector. How could I insert a section that randomly changes, say 1000 of the characters (not lines) to some other character that I define? Thank you!

Respuesta aceptada

Adam
Adam el 21 de Mayo de 2019
Editada: Adam el 21 de Mayo de 2019
If you mean basic letters, then e.g.
idx = randi( numel( yourCharArray ), 1000, 1 );
replacementChars = char( randi( 26, 1000, 1 ) + 96 );
yourCharArray( idx ) = replacementChars;
would replace them with lower case letters from 'a' to 'z'.
If you want other characters then you can change the hard-coded 26 and 96 there as appropriate to index into the ascii character set. 26 obviously represents the 26 letters of the alphabet and 'a' is represented by ascii 97. The random integers will be created from 1 to 26 to add to this.
If you want to you can be fussier to ensure that all your 1000 indices are unique also, but I shall leave that for you.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by