MATLAB Answers

Scanning strings in a string array

Viviana Arrigoni 님이 질문을 제출함. 9 Oct 2017
최근 활동 Guillaume 님이 편집함. 9 Oct 2017
I see that if I declare a string between ' ', I can have access to each single character. For instance:
>> x = 'abc';
>> x(1)
ans = 'a'
While if I declare a string between " ", this doesn't happen:
>> x = "abc";
>> x(1)
ans = "abc"
Now, I need to scan an array of strings, the problem is that if the strings are between "", for example:
A = ["abc", "def", "ghi", "lmn"];
then it results length(A) = 4 (as I want it to be), but then if x = A(1) (i.e. x = "abc"), it is not possible to access to each character of x, and I need to modify such strings, so I need access to x's characters. On the other hand, if I declare the array as follows:
A = ['abc', 'def', 'ghi', 'lmn'];
it results that length(A) = 12 (I want it to be 4), and A(1) = 'a', and not 'abc' as I would like it to be! How do I overcome to this?

  댓글 수: 0

로그인 to comment.

태그

답변 수: 2

Answer by Stalin Samuel on 9 Oct 2017

A = {'abc', 'def', 'ghi', 'lmn'};
A{1}
ans = 'abc'
A{1}(1)
ans = 'a'

  댓글 수: 0

로그인 to comment.


Answer by Guillaume
on 9 Oct 2017
Edited by Guillaume
on 9 Oct 2017

This is fully explained in the documentation. You use curly braces to access individual strings as char vector and then use normal indexing to access individual characters:
A = ["abc", "def", "ghi", "lmn"];
A{1}(1) %returns 'a'
If starting from your x, you still need to use the curly braces:
A = ["abc", "def", "ghi", "lmn"];
x = A(1);
x{1}(2) %returns 'b'
I'll admit it's a bit awkward.

  댓글 수: 0

로그인 to comment.



Translated by