matlab中的for循环

matlab中的for循环,matlab,Matlab,我想写一个脚本,首先请求一些输入: A = input('Enter a square matrix A: '); 如果不是正方形矩阵,它会显示一个错误,然后再次要求输入矩阵a 根据A的维度,命令行中的程序下一步将请求以下输入:(假设A的维度为3) 然后,它会要求初始值x(0)'s,在我们的情况下,它们是3 x(0)'s: The initial values: x1(0): x2(0): x3(0): (注:x(0)的数量取决于A的维度。我们可以将初始值存储在变量x1、x2和x3中)

我想写一个脚本,首先请求一些输入:

A = input('Enter a square matrix A: ');
如果不是正方形矩阵,它会显示一个错误,然后再次要求输入矩阵a

根据A的维度,命令行中的程序下一步将请求以下输入:(假设A的维度为3)

然后,它会要求初始值x(0)'s,在我们的情况下,它们是3 x(0)'s:

The initial values:
x1(0): 
x2(0): 
x3(0): 
(注:x(0)的数量取决于A的维度。我们可以将初始值存储在变量x1、x2和x3中)

如何在Matlab中编写此代码

提前谢谢

=======================

我的尝试:

while(true)
A = input('Enter square matrix A: ');
sizeA = size(A);
if sizeA(1) == sizeA(2)
    break;
end
    display('Error: You have to enter square matrix!')
end
while(true)
B = input('Enter ' + sizeA(1) + 'x1-matrix B: ');
sizeB = size(A);
if sizeB(1) == sizeA(1) && sizeB(2) == 1
    break;
end
    display('Error: You have to enter ' + sizeA(1) + 'x1-matrix!')
end
while(true)
C = input('Enter 1x' + sizeA(1) + '-matrix C: ');
sizeC = size(A);
if sizeC(1) == 1 && sizeC(2) == sizeA(1)
    break;
end
    display('Error: You have to enter 1x' + sizeA(1) + '-matrix!')
end
display('The initial values: ');
% well, I don't know how to start writing the code for the initial values
========================

终于,我得到了我想要的

while(true)
A = input('Enter square matrix A: ');
sizeA = size(A);
if sizeA(1) == sizeA(2) && ndims(A) == 2
    break;
end
    display('Error: You have to enter square matrix!')
end
while(true)
B = input(['Enter ' , num2str(sizeA(1)) , 'x1-matrix B: ']);
sizeB = size(B);
if sizeB(1) == sizeA(1) && sizeB(2) == 1  && ndims(B) == 2
    break;
end
    display(['Error: You have to enter ' , num2str(sizeA(1)) , 'x1-matrix!'])
end
while(true)
C = input(['Enter 1x' , num2str(sizeA(1)) , '-matrix C: ']);
sizeC = size(C);
if sizeC(1) == 1 && sizeC(2) == sizeA(1)  && ndims(C) == 2
    break;
end
    display(['Error: You have to enter 1x' , num2str(sizeA(1)) , '-matrix!'])
end
display('The initial values: ');
for i=1:sizeA(1)
    x(i) = input(['Enter X' , num2str(i) , '(0): ']);
end

你还没有告诉我们你已经走了多远,或者你尝试了什么。请记住,SO不是要求我们编写整个代码的地方,而是在解决特定问题时寻求帮助的地方

然而,我不想让你在没有帮助的情况下悬在那里。因此,您可以尝试使用以下函数编写脚本。一旦基本脚本开始工作,您可以随时编辑您的帖子以提出更具体的问题

  • 查看用于请求用户输入的函数
  • 使用函数抛出错误
  • 用于获取数组的维度。使用两个输出参数,如
    [rows cols]=size(A)
    来获取这两个维度
  • 仅仅检查
    行==cols
    是不够的。您还需要确认只有两个维度,因为如果有两个以上的维度,并且您只请求大小的两个输出,那么它会将第二个维度和更高的维度合并到第二个输出中。作为一个例子,请查看
    [rows,cols]=size(rand(4,2,2))
  • 您可以与上述部分一起使用,以验证矩阵
    B
    C
    的输入维度是否正确
  • 您可以将初始值存储为kwatford建议的单元格或向量。如果不知道你要用它做什么,我不能建议你用哪一个

  • 希望这些有助于您开始。

    您还没有向我们展示您已经取得了多大的成就或尝试了什么。请记住,SO不是要求我们编写整个代码的地方,而是在解决特定问题时寻求帮助的地方

    然而,我不想让你在没有帮助的情况下悬在那里。因此,您可以尝试使用以下函数编写脚本。一旦基本脚本开始工作,您可以随时编辑您的帖子以提出更具体的问题

  • 查看用于请求用户输入的函数
  • 使用函数抛出错误
  • 用于获取数组的维度。使用两个输出参数,如
    [rows cols]=size(A)
    来获取这两个维度
  • 仅仅检查
    行==cols
    是不够的。您还需要确认只有两个维度,因为如果有两个以上的维度,并且您只请求大小的两个输出,那么它会将第二个维度和更高的维度合并到第二个输出中。作为一个例子,请查看
    [rows,cols]=size(rand(4,2,2))
  • 您可以与上述部分一起使用,以验证矩阵
    B
    C
    的输入维度是否正确
  • 您可以将初始值存储为kwatford建议的单元格或向量。如果不知道你要用它做什么,我不能建议你用哪一个

  • 希望这些有助于您入门。

    在本例中,
    x
    应该是一个单元格数组,而不是一堆变量。因此,您需要设置
    x{1}(0)
    x{2}(0)
    x{3}(0)
    ,等等。基于此,您可以自己尝试一下,如果遇到问题,可以发布结果。通常,“我做错了什么?”是一个比“为我编写程序”更令人愉快的问题。我不知道如何实现的部分是确定初始值的数量,然后要求输入them@yoda当前位置我尝试了一下,似乎代码中充满了错误在这种情况下,
    x
    应该是一个单元格数组,而不是一堆变量。因此,您需要设置
    x{1}(0)
    x{2}(0)
    x{3}(0)
    ,等等。基于此,您可以自己尝试一下,如果遇到问题,可以发布结果。通常,“我做错了什么?”是一个比“为我编写程序”更令人愉快的问题。我不知道如何实现的部分是确定初始值的数量,然后要求输入them@yoda当前位置我尝试了一下,代码似乎充满了错误
    while(true)
    A = input('Enter square matrix A: ');
    sizeA = size(A);
    if sizeA(1) == sizeA(2) && ndims(A) == 2
        break;
    end
        display('Error: You have to enter square matrix!')
    end
    while(true)
    B = input(['Enter ' , num2str(sizeA(1)) , 'x1-matrix B: ']);
    sizeB = size(B);
    if sizeB(1) == sizeA(1) && sizeB(2) == 1  && ndims(B) == 2
        break;
    end
        display(['Error: You have to enter ' , num2str(sizeA(1)) , 'x1-matrix!'])
    end
    while(true)
    C = input(['Enter 1x' , num2str(sizeA(1)) , '-matrix C: ']);
    sizeC = size(C);
    if sizeC(1) == 1 && sizeC(2) == sizeA(1)  && ndims(C) == 2
        break;
    end
        display(['Error: You have to enter 1x' , num2str(sizeA(1)) , '-matrix!'])
    end
    display('The initial values: ');
    for i=1:sizeA(1)
        x(i) = input(['Enter X' , num2str(i) , '(0): ']);
    end