[英]if-else statement with 2 level checking
1)我有5個數據保存在記事本中,只有data4帶有單詞“ Form”,但是在我的結果中出現了4次,表明它發生了(例如:C9 = [1 1 1 1])。 我如何將其修改為僅C9 = [1]。 然后,總體結果包括data1,直到data5為C9 = [0 0 0 1 0]
data1=<form name="yahoo" method="post" action="yahoo.php">
data2=n/a
data3=<form>
data4=<form name="yahoo" method="post" action="yahoo.php" onsubmit="return ValidateFormYahoo()">
data5 = onsubmit =“ return ValidateFormYahoo()”
現在我的代碼:
A9 = {'Form'};%check domain
D9 = {'Validate'};%check domain
data1= importdata('f9_data1');
data2 = importdata('f9_data2');
data3 = importdata('f9_data3');
data4 = importdata('f9_data4');
data5 = importdata('f9_data5');
C9_data1=any(cellfun(@(n) ~isempty(n), strfind(data1, A9{1}& D9{1})))
C9_data2=any(cellfun(@(n) ~isempty(n), strfind(data2, A9{1}& D9{1})))
C9_data3=any(cellfun(@(n) ~isempty(n), strfind(data3, A9{1}& D9{1})))
C9_data4=any(cellfun(@(n) ~isempty(n), strfind(data4, A9{1}& D9{1})))
C9_data5=any(cellfun(@(n) ~isempty(n), strfind(data5, A9{1}& D9{1})))
E9 = [C9_data1; C9_data2; C9_data3; C9_data4; C9_data5]
我要檢查的是'form'和'validate'同時發生,然后返回0,如果nth則返回0,否則,如果僅'form'或'validate'然后返回1 [data1 data2 data3 data4 data5] = [1 0 1 0 1]
如果您只想合計為一個值,可以這樣說:
C9=any((cellfun(@(n) ~isempty(n), strfind(data4, A9{1}))));
如果輸入數組中的任何值都不為零,則any
函數將返回true。
對於第二個問題,如果您使用any
,則結果為布爾值(true或false),則可以執行邏輯AND。
C9=any((cellfun(@(n) ~isempty(n), strfind(data4, A9{1})))) && any((cellfun(@(n) ~isempty(n), strfind(data4, D9{1}))));
但是,我不確定您的數據文件是什么以及您要說的是什么。 importdata
函數通常返回具有多個字段的結構,而strfind
函數對字符串或字符串的單元格數組進行操作,但對結構不進行操作。 因此,獲得輸出向量的原因使我感到困惑。 如果您描述輸入數據可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.