如何询问用户矩阵并找到零?

时间:2014-03-31 13:43:06

标签: matlab

我是matlab的新手,并试图以最简单的方式解决这个问题。我必须要求用户输入矩阵(一个矩阵内的所有数字),并确定矩阵是否有任何零。如果是,我该如何确定零的位置?

2 个答案:

答案 0 :(得分:0)

这应该让你开始,它使用input向用户询问多个行和列,然后分别提示每个条目(不进行检查以确保数据是一个数字)。 然后代码使用find来定位任何等于零的条目。

c = input('How many columns: ');
r = input('How many rows: ');

% Ask user to enter each number individually (no checks made)
for i=1:r
    for j=1:c
        matrix(i,j) = input(sprintf('Enter element R%dC%d: ',i,j));
    end
end
fprintf('Here is your matrix:\n');
disp(matrix);
fprintf('\n');

% If any entries are == 0
if any(find(matrix==0))
    [zeros_r,zeros_c]=find(matrix==0); %Find zero positions
    %Loop through zero entries and print
    for i=1:length(zeros_r)
        fprintf('Zero at Row%d Column%d\n', zeros_r(i),zeros_c(i));
    end
else
    fprintf('No zeros found\n');
end

答案 1 :(得分:0)

到目前为止,最简单的编码方法是让用户以有效的matlab语法输入矩阵。

该计划将是:

M=input('input your matrix:')
[r c]=find(~M)

示例输入为:

[1 1 1;1 0 0]