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