测试if语句条件中的多个字符串中的任意一个



我想让用户选择一个文件(我知道我目前已经设置为选择一个文件夹)或手动输入数字。

prompt = input('Do you want to manually input values or select file? :','s'); 
s2 = {'file','folder'; 'f','choose'};
tf = strcmp(prompt,s2);
if tf >= 1
folder_name = uigetdir
folder_name = uigetdir(start_path)
folder_name = uigetdir(start_path,dialog_title)
else        
    prompt = {'Enter matrix size:','Enter colormap name:'};
    dlg_title = 'Input';
    num_lines = 1;
    defaultans = {'20','hsv'};
    answer = inputdlg(prompt,dlg_title,num_lines,defaultans); 
end

我想允许用户输入单词file, folder, fchoose,并在if语句的第一部分使用文件夹对话框,如果这四个字符串中的任何一个没有输入,请转到else语句。

因为我将它们保存为字符串,所以我使用strcmp。如果我运行代码并输入单词"folder",我将得到如下矩阵:

 0     1
 0     0

我的问题是我如何使用strcmp说"如果矩阵的任何元素是1",逻辑输出现在是1而不是0。

谢谢你的帮助!

直接替换

if tf >= 1

if any(tf(:))

tf(:)返回tf中所有元素的列向量,any()检查是否有大于1的值

除了Ian Riley所建议的之外,人们还可以使用以下依赖于正数的"真实性"的替代方法:

nnz:

if nnz(tf)

sum:

if nnz(tf(:))

两个方法都对数组中的非零元素计数

相关内容

  • 没有找到相关文章

最新更新