Error using == Matrix dimensions must agree.

Hi, I want a solution to this problem. Someone can help me?
Error in operations (line 5)
elseif c == 'multi'

 採用された回答

Star Strider
Star Strider 2015 年 5 月 30 日

6 投票

I have no idea what the matrix dimension problem is, since we have only one line of your code. However, the way to compare strings and string variables is to use the strcmp or strcmpi functions.
So the correct syntax for the line you posted would be:
elseif strcmpi(c, 'multi')

7 件のコメント

Alvaro Arenas
Alvaro Arenas 2015 年 5 月 30 日
編集済み: Star Strider 2015 年 5 月 30 日
Hi, Star Strider. Thank you for answer my question
I corrected the matlab code but now I have this problem
>> o1 = operations(4,'suma')
o1 =
8
>> o2 = operations(4,'multi')
Error in operations (line 3)
if strcmpi(c, 'suma')
Output argument "o1" (and maybe others) not assigned during call to
Star Strider
Star Strider 2015 年 5 月 30 日
The logic in your code is correct. I experimented with all the options.
You can realistically have only one output, not three, so I would change your code to:
function [out] = operations(M,c)
out = NaN;
if strcmpi(c, 'suma')
out = M+M;
elseif strcmpi(c, 'multi')
out = M*M;
elseif strcmpi(c, 'expo')
out = M^M;
end
end
That should eliminate the error.
The initial assignment setting out to NaN covers the error condition when nothing matches ‘c’ correctly. The operation would not be defined, so that would actually be appropriate.
Alvaro Arenas
Alvaro Arenas 2015 年 5 月 31 日
Star Strider Thank you so much. I resolved this problem
Star Strider
Star Strider 2015 年 5 月 31 日
My pleasure.
If my Answer helped you resolve your problem, please Accept it.
KenoKanawa
KenoKanawa 2018 年 11 月 16 日
Thank you, it solved my problem too !
Star Strider
Star Strider 2018 年 11 月 16 日
@KenoKanawa — My pleasure!
Dunzhi Chen
Dunzhi Chen 2020 年 6 月 25 日
Thanks, this solved my problem!

サインインしてコメントする。

その他の回答 (1 件)

Pronoy Das
Pronoy Das 2021 年 2 月 25 日
編集済み: Pronoy Das 2021 年 2 月 25 日

2 投票

I came across a similar problem. Simply replace the single quotation marks with the double quotation marks, i.e. replace the line in your code with
c == "multi"

カテゴリ

タグ

タグが未入力です。

質問済み:

2015 年 5 月 30 日

編集済み:

2021 年 2 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by