Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Matlab函数的添加?_Matlab - Fatal编程技术网

Matlab函数的添加?

Matlab函数的添加?,matlab,Matlab,有人能帮我在MATLAB中解决这个问题吗 编写一个名为maging\u add的函数,该函数使用十进制表示法将任意长度的两个正整数相加为字符串。单输出参数是结果,也是字符串。输入和输出必须仅包含数字;不允许使用逗号、空格或任何其他字符。如果输入违反了这些假设中的任何一个,函数将返回数字-1 我写的代码是: function[c]=huge_add(a1,b1) aaa=length(a1); bbb=length(b1); c=0; if isnumeric(a1) ||isnumeric(b1

有人能帮我在MATLAB中解决这个问题吗

编写一个名为
maging\u add
的函数,该函数使用十进制表示法将任意长度的两个正整数相加为字符串。单输出参数是结果,也是字符串。输入和输出必须仅包含数字;不允许使用逗号、空格或任何其他字符。如果输入违反了这些假设中的任何一个,函数将返回数字
-1

我写的代码是:

function[c]=huge_add(a1,b1)
aaa=length(a1);
bbb=length(b1);
c=0;
if isnumeric(a1) ||isnumeric(b1)
    c=-1;
else if ~isnumeric(a1) ||~isnumeric(b1)
        for i=1:aaa
            if a1(i)~='1'&& a1(i)~='2'&&a1(i)~='3'&&a1(i)~='4'&&a1(i)~='5'&&a1(i)~='6'&&a1(i)~='7'&&a1(i)~='8'&&a1(i)~='9'&&a1(i)~='0'
               c=-1;
            end
        end
        for i=1:bbb
            if  b1(i)~='1'&&b1(i)~='2'&&b1(i)~='3'&&b1(i)~='4'&&b1(i)~='5'&&b1(i)~='6'&&b1(i)~='7'&&b1(i)~='8'&&b1(i)~='9'&&b1(i)~='0'
                c=-1;
            end
        end
    end
a=a1;
b=b1;
aa=length(a);
bb=length(b);
    as=(str2num(a));
    bs=(str2num(b));
    af=fliplr(a);
    bf=fliplr(b);
    if c~=-1
        if aa<bb
            for ii=1:aa
                x(ii)=af(ii);
                y(ii)=bf(ii);
                z(ii)=str2num(x(ii))+str2num(y(ii));
                zz{ii}=num2str(z(ii));
            end
    cl=fliplr(z);
    rem=(b(1):b(bb-aa));
    ca=[rem,cl(1):cl(end)];
    else if aa>bb
            for ii=1:bb
                x(ii)=af(ii);
                y(ii)=bf(ii);
                z(ii)=str2num(x(ii))+str2num(y(ii));
                zz(ii)=num2str(z(ii))
            end
    cl=fliplr(z);
    rem=(a(1):a(aa-bb));
    ca=[rem,cl(1):cl(end)];
        else
            for ii=1:aa
                x(ii)=af(ii);
                y(ii)=bf(ii);
                z(ii)=str2num(x(ii))+str2num(y(ii));
                zz(ii)=num2str(z(ii));
            end
      cl=fliplr(z);
      rem=[];
      ca=[rem,cl(1):cl(end)];
        end
        end
      d=str2num([rem,fliplr(zz)])
      %d=([rem,fliplr(zz)])
      c=num2str(d);
      end 
end
end

请帮助….

c+c>=10
(或任何其他条目)时,此函数将不适用于任何
a1='abcd',b1='abcd'
您需要正确携带1。行后
z(ii)=str2num(x(ii))+str2num(y(ii))
您应该检查
z(ii)>10
,如果是,则将1向前推进


顺便说一下,这就是只有最后一个例子不起作用的原因。

我不明白为什么需要65行循环。您不能使用和吗?谢谢您的帮助。我真的不知道如何将它们合并到代码中。刚接触编程,但仍在努力更好地理解它。你能给我介绍一下吗?我已经链接了文档,里面有很多例子。非常感谢。。可能需要一段时间我才能解码,但谢谢你。。!!嗨,Idekel,谢谢你能不能详细说明一下或者调整一下代码的这一部分…我对编程是新手,所以有时候很难理解这一点。。。!!谢谢你的好意帮助。。!!函数n=巨大的加法(n1,n2),如果是数值的(n1)&&isnumeric(n2);n=-1;否则bn1=n1;bn2=n2;n1=双(str2num(n1));n2=双(str2num(n2));en1=num2str(n1);en2=num2str(n2);if strcmp(en1,bn1)和&strcmp(en2,bn2)if n1反馈:您的函数对参数“1”、“1”正确执行反馈:您的函数对参数“10”、“22”正确执行反馈:您的函数对参数“1234”、“1”正确执行反馈:您的函数对参数“0”正确执行,“0”反馈:您的函数为参数“12”出错,“-2”您的解决方案不正确。Idekel,我尝试根据您的输入修改函数,但仍然收到相同的错误…请提供帮助。。!!
Feedback: Your function performed correctly for argument(s) '1', '1'
Feedback: Your function performed correctly for argument(s) '10', '22'
Feedback: Your function performed correctly for argument(s) '1234', '1'
Feedback: Your function performed correctly for argument(s) '0', '0'
Feedback: Your function performed correctly for argument(s) '12', '-2'
Feedback: Your function performed correctly for argument(s) '99.99', '0'
Feedback: Your function performed correctly for argument(s) '1,234', '1'
Feedback: Your function performed correctly for argument(s) 12, 34
Feedback: Your function performed correctly for argument(s) [1 2 3], '1'
Feedback: Your function performed correctly for argument(s) '2', [50 51 52]
Feedback: Your program made an error for argument(s) '612455618766556780', '6285757'

Your solution is _not_ correct.