Can't Build Vector in While loop

10 visualizzazioni (ultimi 30 giorni)
John Jacoby
John Jacoby il 18 Lug 2017
Commentato: John Jacoby il 18 Lug 2017
Hi all, I need to search through some data and extract a specific value and then put all these values together into a vector. Here's the code I'm working with:
chtype = channels{1,1}.hdr.channeltype;
n=1;
while chtype ~= 'Edge'
size = size(channels{n,1}.mrk, 1);
sizeVec(n) = size;
n = n+1;
chtype = channels{n,1}.hdr.channeltype;
end
I get the following error:
Matrix dimensions must agree.
Error in RFSize1 (line 11) while chtype ~= 'Edge'
To me it looks like I'm just adding onto vector sizeVec with value size. I'm not sure what dimension isn't in agreement. Thank you!

Risposta accettata

Geoff Hayes
Geoff Hayes il 18 Lug 2017
Modificato: Geoff Hayes il 18 Lug 2017
John - when comparing strings, use strcmpi or strcmp. The first would be used if you are making a case-insensitive comparison, the second if you care about case. Your code would then become
while ~strcmp(chtype,'Edge')
or
while ~strcmpi(chtype,'Edge')
Note that the error Matrix dimensions must agree. makes sense when comparing
chtype ~= 'Edge'
since chtype may have a different number of elements from the four character 'Edge'.
  1 Commento
John Jacoby
John Jacoby il 18 Lug 2017
Thank you so much, I'm new and forgot that 'matrix' could refer to a string as well.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by