Matlab问题, 如何用if条件语句判断工作空间内的变量是否满足要求 matlab的if语句,要求满足多个条件中的一个,也就是说彼...

MATLAB \u4e2dif\u8bed\u53e5\u540e\u7684\u6761\u4ef6\u5224\u65ad\u53ef\u4ee5\u7528\u2026&\u6216\u8005and\u7684\u8fde\u63a5\u8868\u8fbe\u5f0f\u4e48\uff1f

\u8fd8\u53ef\u4ee5\u7528\u5355\u7b26\u53f7\uff0c\u4f8b\u5982 && \u8868\u793a\u4e24\u4e2a\u903b\u8f91\u503c\uff0c\u800c & \u8868\u793a\u4e24\u4e2a\u903b\u8f91\u77e9\u9635\uff0c\u53ef\u4ee5\u7528 any, all \u7b49\u6765\u5224\u65ad\u903b\u8f91\u77e9\u9635\u7684\u4e00\u4e9b\u60c5\u51b5MATLAB \u4e2dif\u8bed\u53e5\u540e\u7684\u6761\u4ef6\u5224\u65ad\u53ef\u4ee5\u7528\u2026&\u6216\u8005and\u7684\u8fde\u63a5\u8868\u8fbe\u5f0f\u4e48\uff1f

\u4f60\u7684a\u662f\u4ec0\u4e48\u7c7b\u578b\u7684\u6570\u636e.
\u62a5\u9519\u7684\u4fe1\u606f\u662f\u4ec0\u4e48.
\u8bed\u6cd5\u662f\u6ca1\u6709\u9519\u7684.


\u4f60\u4e0a\u9762\u7684for\u662f\u4ecei=1:10
\u800c\u51fa\u9519\u7684\u662fi=8
\u7531\u4e8e\u4f60\u7684x1,y1\u7684\u957f\u5ea6\u53ea\u67097\u4e2a,\u4f60\u8bbf\u95ee\u7b2c8\u4e2a\u5143\u7d20\u5c31\u51fa\u9519\u4e86.
\u4f46\u662f\u524d\u4e03\u4e2a\u7684\u56fe\u8fd8\u5728.
\u6240\u4ee5\u4f60\u611f\u89c9\u662f\u6b63\u5e38\u7684.\u4f46\u662f\u6709\u70b9\u4e0d\u6b63\u5e38\u5c31\u662f\u4e86.

你要遍历所有变量?那么你得用三个命令:who、for、eval
例子

function blbltest
%假设有4个量
testary=logspace(1,3,20);
VCellArraybf=who;
L18=testary(1:5);R18=testary(6:10);L19=testary(11:15);R19=testary(16:20);%这里是变量
VCellArray=setdiff(setdiff(who,VCellArraybf),{'VCellArraybf'});%获取变量列表,并去除掉5行以前的
VNum=length(VCellArray);
for ii=1:VNum
cmd=['if ',VCellArray{ii},'(1,4)-',VCellArray{ii},'(1,3)>10;'];%条件
cmd=[cmd,'plotfunc(',VCellArray{ii},');'];%任务:画图
cmd=[cmd,'end;'];
eval(cmd)
end

function plotfunc(VMatrix)
%你的做图函数
%plot(VMatrix(3:end,6))
%plot(VMatrix(1:end,1))
%这里,我把满足条件的列出来
disp(['满足条件的有',inputname(1),'='])
disp(VMatrix)

运行结果显示
满足条件的有L19=
112.8838 143.8450 183.2981 233.5721 297.6351

满足条件的有R18=
33.5982 42.8133 54.5559 69.5193 88.5867

满足条件的有R19=
1.0e+003 *

0.3793 0.4833 0.6158 0.7848 1.0000

另:你提及的画图问题,没说清楚
如果是一张图25条曲线,那么标注可以这样
legendstr=cell(1,25);
for ii=1:25
legendstr{ii}=num2str(ii);
end
legend(legendstr)
如果是25张子图
那么你得在添加标注的前面加上 subplot(子图编号)

扩展阅读:matlab 如何让点连成线 ... matlab求解下料问题 ... 如何用matlab绘制散点图 ... matlab问题及答案 ... 怎么用matlab解多元方程组 ... 史密斯预估器 matlab ... 如何用matlab求最优解 ... matlab求解最优化问题实例 ... matlab 提高运算精确度 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网