代码
NA = 1.33;
naValues = NA+pi/180:pi/180:(NA+pi/2);
assert( (naValues > NA), 'naValues not bigger than NA');
我在尝试floor(sum(naValues > NA))/90
的不平等的地方尝试assert( [logical], msg)
失败了。
输出
Error using assert
The condition input argument must be a scalar logical.
如何在Matlab的断言中使用向量不等式?
答案 0 :(得分:2)
使用all
或any
,但一般情况下,我会将您传递的值列为列。这样,除了矢量之外,它对于矩阵和N-d阵列始终是鲁棒的。观察:
>> matrixValues = reshape(naValues,10,9)
matrixValues =
Columns 1 through 7
1.34745329251994 1.52198621771938 1.69651914291881 1.87105206811824 2.04558499331768 2.22011791851711 2.39465084371654
1.36490658503989 1.53943951023932 1.71397243543875 1.88850536063819 2.06303828583762 2.23757121103705 2.41210413623648
1.38235987755983 1.55689280275926 1.7314257279587 1.90595865315813 2.08049157835756 2.25502450355699 2.42955742875643
1.39981317007977 1.57434609527921 1.74887902047864 1.92341194567807 2.09794487087751 2.27247779607694 2.44701072127637
1.41726646259972 1.59179938779915 1.76633231299858 1.94086523819802 2.11539816339745 2.28993108859688 2.46446401379631
1.43471975511966 1.60925268031909 1.78378560551853 1.95831853071796 2.13285145591739 2.30738438111682 2.48191730631626
1.4521730476396 1.62670597283904 1.80123889803847 1.9757718232379 2.15030474843733 2.32483767363677 2.4993705988362
1.46962634015955 1.64415926535898 1.81869219055841 1.99322511575785 2.16775804095728 2.34229096615671 2.51682389135614
1.48707963267949 1.66161255787892 1.83614548307836 2.01067840827779 2.18521133347722 2.35974425867665 2.53427718387609
1.50453292519943 1.67906585039887 1.8535987755983 2.02813170079773 2.20266462599716 2.3771975511966 2.55173047639603
Columns 8 through 9
2.56918376891597 2.74371669411541
2.58663706143592 2.76116998663535
2.60409035395586 2.77862327915529
2.6215436464758 2.79607657167524
2.63899693899575 2.81352986419518
2.65645023151569 2.83098315671512
2.67390352403563 2.84843644923507
2.69135681655558 2.86588974175501
2.70881010907552 2.88334303427495
2.72626340159546 2.9007963267949
>> all(matrixValues)
ans =
1 1 1 1 1 1 1 1 1
>> all(matrixValues(:))
ans =
1
>>
答案 1 :(得分:1)
如果您希望所有naValues
都大于NA
,那么您可以使用all
函数将矢量比较作为标量(assert
所需) :
assert(all(naValues > NA)), 'naValues not bigger than NA');