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