matlab - 求和条件应用于没有循环的向量的可能排列 MATLAB
问题描述
我想对以下条件求和以对 size 数组求和以下条件n
:
例如n=4
eps=0.6;
((x(1)<eps && x(2)<eps && x(3)<eps) || ...
(x(1)<eps && x(2)<eps && x(4)<eps) || ...
(x(2)<eps && x(3)<eps && x(4)<eps) || ...
(x(1)<eps && x(3)<eps && x(4)<eps))
x=[0.1 0.5 0.3 0.9]
结果将是s=1
,结果x=[0.1 0.6 0.7 0.9]
将是s=0
如何在不使用双循环的情况下做到这一点?
解决方案
您可以将您的条件重写为:
condition = (sum(x >= eps) == 1);
对于任何大小的 x。基本上,您只需检查是否只有一个不小于 eps 的元素。
推荐阅读
- java - sun.misc.BASE64Decoder 的替代品是什么?在哪里可以找到 sun.misc.BASE64Decoder 的 jar?
- sql - 通过匹配 2 列 SQL 检索行值
- java - 如何使用 Java 托管我自己的 SMTP 服务器
- oracle - 无法找到或登录 Oracle Cloud DB
- javascript - Highcharts - Adding a suffix to a tooltip in a multi-series chart
- wpf - "ApplicationCommands.Copy not found" error in Visual Studio (XAML Designer)
- r - Show total number of boxes checked NEXT to ActionButton
- authentication - Authenticate to an API with OWASP ZAP without using OpenAPI or Swagger specs
- apache-kafka - Kafka Mirromaker2 producer idempotence and duplicates
- excel - How to generate a copy of a page from a drop down menu in Excel?