具有2级检查的if-else语句

时间:2014-03-18 01:21:01

标签: matlab matlab-figure

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 =&#34;返回ValidateFormYahoo()&#34;

现在我的代码:

 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]

我想检查一下&#39;表格&#39; &安培; &#39;验证&#39;同时发生,然后返回0,如果nth则返回0,否则如果只是&#39;形成&#39;或者&#39;验证&#39;然后返回1 [data1 data2 data3 data4 data5] = [1 0 1 0 1]

1 个答案:

答案 0 :(得分:3)

如果您只想汇总成一个值,可以这样说:

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函数对字符串或字符串的单元格数组进行操作,但不对结构进行操作。所以你得到一个矢量作为输出的原因困扰着我。如果您描述输入数据,它可能会有所帮助。