簡體   English   中英

if-else語句,進行2級檢查

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM