lola
lola

Reputation: 5789

how to compare array with matlab

I would like to comapre two arrays of strings how could I affect the following values to a,b,c,d , when I try as below, I got an error

[a,b,c,d] = getVal(x);
    =>this will gives :
a =

a
b=

0
c =

10
d =
[]   

and I have :

expected = {'a','0','10',[]};

how could I make the comparison between [a,b,c,d] and expected ?

Upvotes: 1

Views: 214

Answers (2)

Edric
Edric

Reputation: 25140

Following on from Li-aung's answer, what you probably want is something like

isequal({a,b,c,d}, {'a', '0', '10', '20'})

This will return true iff a has the value 'a' and so on.

EDIT

To perform multiple assignments, you can use DEAL

[a,b,c,d] = deal('a', '0', '10', '20')

Upvotes: 2

Li-aung Yip
Li-aung Yip

Reputation: 12486

Mistake 1:

= is the assignment operator.

The comparison operator is ==.


Mistake 2:

MATLAB arrays don't generally hold strings. They hold numbers or single characters.

>> b = ['a','0','10','20']

b =

a01020

To see why [a,b,c,d] = ['a','0','10','20'] doesn't work, consider this:

>> [a,b,c,d] = 'a01020'
??? Too many output arguments.

You're trying to put six characters into four buckets. Not going to work.

You might have meant to create a cell array:

>> c = {'a','0','10','20'}

c = 

    'a'    '0'    '10'    '20'

Matlab arrays are numerical matrices, not general-purpose list containers.

Upvotes: 2

Related Questions