Multiple values in the if-expression

38 ビュー (過去 30 日間)
Sam
Sam 2014 年 12 月 20 日
コメント済み: Amir Semnani 2021 年 3 月 19 日
My data-file is a (5x5) matrix. Each cell is a struct. In this struct there is 1 datafile (and other files like 'columnsheaders'). I have created a for-loop for 5 measurements en 5 subjects. So I tried to create an 'if-expression' to say that if specific values of that matrix are met, the program should break. But it gives the following error: "The expression to the left of the equals sign is not a valid target for an assignment."
if ((i_testen = 4) & (welke_pp = 1)) | ((i_testen = 4) & (welke_pp = 3)) | ((i_testen = 4) & (welke_pp) = 4) | ((i_testen) = 4 & (welke_pp = 5)) | (i_testen <= 4)
break
RASI = data_sts(welke_pp,i_testen).VideoSignals(:, strcmp('RASI', data_sts(welke_pp,i_testen).VideoSignals_headers));
XY(2,1) = max(RASI)
XY(1,1) = 0;
Begin_Eind_sts.Begin(i_testen) = abs(XY(2,2));
Begin_Eind_sts.Eind(i_testen) = abs(XY(1,2));
close all
end

採用された回答

Star Strider
Star Strider 2014 年 12 月 20 日
Your program is breaking on i_testen == 1 because at the end of the if statement conditions you have:
(i_testen <= 4)
that will cause the if condition to be true for i_testen == 1.
  6 件のコメント
Sam
Sam 2014 年 12 月 22 日
Yes!
Star Strider
Star Strider 2014 年 12 月 22 日
Great!

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

その他の回答 (1 件)

Guillaume
Guillaume 2014 年 12 月 20 日
To compare values together use ==, the equality comparison operator, not = which is the assignment operator
  3 件のコメント
Sam
Sam 2014 年 12 月 20 日
編集済み: Sam 2014 年 12 月 20 日
Oh yeah, I see it. I adjusted my code, but now there is another error...
if ((i_testen == 4) & (welke_pp == 1)) | ((i_testen == 4) & (welke_pp == 3)) | ((i_testen == 4) & (welke_pp == 4)) | ((i_testen) == 4 & (welke_pp == 5))
break
else
RASI = data_sts(welke_pp,i_testen).VideoSignals(:, strcmp('RASI', data_sts(welke_pp,i_testen).VideoSignals_headers)); %extract data
XY(2,1) = max(RASI) %get the maximum for RASI
XY(1,1) = 0; %set the minimum to zero
Begin_Eind_sts.Begin(i_testen) = abs(XY(2,2)); %store the data in a struct
Begin_Eind_sts.Eind(i_testen) = abs(XY(1,2));
close all %close all opened figures
end
The error is: "Index exceeds matrix dimensions.
Error in examen_matlabproberenpp1if (line 59) Begin_Eind_sts.Begin(i_testen) = abs(XY(2,2));".
Amir Semnani
Amir Semnani 2021 年 3 月 19 日

Thanks

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

カテゴリ

Help Center および File ExchangeMATLAB Coder についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by