Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 函数用于确认字母和数字的存在/忽略异常_String_Matlab - Fatal编程技术网

String 函数用于确认字母和数字的存在/忽略异常

String 函数用于确认字母和数字的存在/忽略异常,string,matlab,String,Matlab,所以,我正试图根据我老师的指示,用MATLAB建立一个程序,我发现了一些障碍,如果我能把它们弄对的话,这些障碍会给我一个更好的分数。这是: 要求用户插入字符串,但不能超过20个字符。如果这样做,则会忽略例外,并使用用户插入的前20个字符保存字符串。我如何忽略字符串中的异常并保存它 isleter是一个函数,它告诉我们元素是否都是字母。在这个程序中,用户被要求插入一个需要同时包含数字和字母的字符串,这样就排除了只包含字母或数字的字符串,然后我将用一段时间继续要求输入具有这些特征的字符串 你能帮帮我

所以,我正试图根据我老师的指示,用MATLAB建立一个程序,我发现了一些障碍,如果我能把它们弄对的话,这些障碍会给我一个更好的分数。这是:

  • 要求用户插入字符串,但不能超过20个字符。如果这样做,则会忽略例外,并使用用户插入的前20个字符保存字符串。我如何忽略字符串中的异常并保存它

  • isleter
    是一个函数,它告诉我们元素是否都是字母。在这个程序中,用户被要求插入一个需要同时包含数字和字母的字符串,这样就排除了只包含字母或数字的字符串,然后我将用一段时间继续要求输入具有这些特征的字符串


  • 你能帮帮我吗?这是我在MATLAB的第一个学期。谢谢大家!

    对于问题的第一部分,您可以使用Matlab函数
    inputdlg
    ,该函数会提示一个对话框,请求用户输入。然后,您可以根据需要修剪输入

    对于问题的第二部分,您提到的函数
    isleter
    将分别告诉您每个字符是否为字母,因此您可以对结果求和,并检查其是否介于1和19之间。这将告诉您字符串同时包含字母和数字

    最后,您可以将代码放入while循环中,并在满足条件时更改变量,以便可以在循环外中断

    此示例代码演示了以下内容:

    tryagain=1;
    while(tryagain)
    answer=inputdlg('Insert a 20 character string that contains both letters and numbers','User input');
    answer=answer{1};
    if(numel(answer)>20)
        answer=answer(1:20);
    end
    letters=sum(isletter(answer));
    numbers=sum(~arrayfun(@(x)isempty(str2num(x)),answer));
    if(letters>0 && numbers>0)
        tryagain=0;
    end
    end
    

    如果不允许字母和数字以外的字符(即
    '/@!'
    或空格),并要求它们输入的字符串必须至少包含1个字母和1个数字,则可以使用该函数(比)检查其他类型的字符。用于提示输入字符串(如中所建议)的想法很好,因此这里有一个使用INPUTDLG的简洁解决方案,可以实现您想要的:

    answer = '';  %# Initialize answer to be an empty string
    while any(~isstrprop(answer, 'alphanum')) || ...  %# Check for alphanumeric chars
          ~any(isletter(answer)) || ...     %# Check for at least 1 letter
          ~any(isstrprop(answer, 'digit'))  %# Check for at least 1 number
      answer = inputdlg('Enter string:');   %# Prompt for input
      answer = answer{1}(1:min(20, end));   %# Trim answer to max of 20 chars
    end
    

    请注意如何使用函数和将字符串修剪为20个字符。

    是否指定了如果用户输入的字符既不是字母也不是数字,如“/@!”会发生什么情况还是空白?在这种情况下,密码(用户正在创建的)不被接受,并要求用户插入有效密码。回答不错,
    isstrprop
    确实是足够的功能。