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