Replace String in Character Array with complete Character Array (100x100)

I have following string in a 1x287000 character array:
I would like to replace the String "coordIndex" with a complete 100x100 character array.
With strrep I have to specify the string I'd like to insert:
new_str = strrep(new_str,'coordIndex','something_else');
I tried this but that doesn't work obviously (u is the 100x100 character array):
new_str = strrep(new_str,'coordIndex', u );
I couldn't find any solution to this problem so far.

Answers (1)

You cannot insert a 100x100 2-D matrix into a 1x287000 row vector.
You can only insert it into a matrix that has at least 100 rows, not into a vector of only a single row. I mean, where would the lower 99 rows go???
You can turn that 100x100 into a row vector also and then insert it. Would that be acceptable?
output = [vec1(1:index), vec2(:)', vec1(index+1, end)];
index is the index after which you wish to insert the other elements. Would the above be acceptable?

3 Comments

Yeah that would be acceptable. Somehow I cannot follow you with the index part, do I have to create a variable first? I get following errors:
>> p = new_str(1:coordIndex);
Undefined function or variable 'coordIndex'.
>> p = new_str(1:'coordIndex');
Error using :
For colon operator with char operands, first and last operands must be char.
>> p = new_str(1:"coordIndex");
Undefined operator ':' for input arguments of type 'string'.
I'm not that adept with MATLAB^^
You need your vector, and your 2-D matrix. What are the names of those two variables? I just assumed they were vec1 and vec2. Replace them with whatever your names are. You also have to define coordIndex. Maybe try
coordIndex = [0, 1, 2, 3, -1;...
4, 5, 6, 7, -1];
index = strfind(vec1, coordIndex(:)');
My vector and matrix are named as following:
I defined now the coordIndex like this (extracted from new_str):
coordIndex = extractBetween(new_str,"coordIndex [","]");
Now the code should look like this:
index = strfind(new_str, coordIndex(:)');
With this my index is basically empty:
------------------------------------------------------------------------------------------------------------------------------------
I have another issue with the creation of the vector from the matrix, yesterday it somehow worked, but now I cleared the workspace and loaded it newly, but the vector is not what I intend:
output = u(:).';
I tried following code but same result:
n = size(u);
output = reshape(u,[1,(n(1:1)*n(2:2))]);

Sign in to comment.

Categories

Products

Release

R2019a

Asked:

on 17 May 2020

Commented:

on 18 May 2020

Community Treasure Hunt

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

Start Hunting!