MATLAB doesn't recognise a string in a variable
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
function q = edgeindex(edgenum, indexes, id)
length_index = length(indexes);
q = cell(1,edgenum);
b = 0;
for i = 1:length_index
l = indexes(i);
if i == 1
c = strsplit(id(l),'_');
b = b+1;
q{b} = l
else
d = strsplit(id(l),'_');
c{3}
d{3}
if srtcmp(c{3},d{3})
disp('equal')
q{b} = [q{b} (l)]
else
disp('not equal')
c = d;
b=b+1;
q{b} = l
end
end
end
end
Edgenum - an integer
Indexes - an array of integers
id - is a column vector made of text ex. OUT_218_46_[1][0].
At this point: c = strsplit(id(l),'_'); it gives me an error saying the first input has got to be a string. But it is a string? How do I overcome this problem?
I tried putting c = strsplit(char(id(l)),'_'); but a problem arises @ srtcmp(c{3},d{3})
Thanks in advance
2 Commenti
Risposte (1)
Walter Roberson
il 25 Lug 2015
When you have a character array and you index it with a single numeric index, the result is a single character.
Column vectors of text are not considered strings: strings are row vectors of text.
Is is possible that id is a cell array of strings? If so then to extract the l'th entry you need id{l} rather than id(l) . This possibility is consistent with your error message.
2 Commenti
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!