matlab: 为什么我的程序中for循环只执行了一次? 谢谢
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/28 05:01:29
matlab: 为什么我的程序中for循环只执行了一次? 谢谢
A = work_3(nmat); %多行两列的矩阵 A_1 = A(:,1); A_2 = A(:,2); s1 = length(unique(A_2)); count = hist(A_2,unique(A_2)); p = 1; k = 1; q = count(1); D = work_5(A_1,p,q); for j = 1:s1-1 if (length(D) >= 3) output = D; sprintf('%4d',output); D = []; p = k + count(j); q = q + count(j+1); D = work_5(A_1,p,q); k = p; else p = p; q = q + count(j+1); D = []; D = work_5(A_1,p,q); k = k + count(j); end
A = work_3(nmat); %多行两列的矩阵 A_1 = A(:,1); A_2 = A(:,2); s1 = length(unique(A_2)); count = hist(A_2,unique(A_2)); p = 1; k = 1; q = count(1); D = work_5(A_1,p,q); for j = 1:s1-1 if (length(D) >= 3) output = D; sprintf('%4d',output); D = []; p = k + count(j); q = q + count(j+1); D = work_5(A_1,p,q); k = p; else p = p; q = q + count(j+1); D = []; D = work_5(A_1,p,q); k = k + count(j); end
![matlab: 为什么我的程序中for循环只执行了一次? 谢谢](/uploads/image/z/297432-0-2.jpg?t=matlab%3A+%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E4%B8%ADfor%E5%BE%AA%E7%8E%AF%E5%8F%AA%E6%89%A7%E8%A1%8C%E4%BA%86%E4%B8%80%E6%AC%A1%3F+%E8%B0%A2%E8%B0%A2)
试一下我的修改:
work_3(nmat); %多行两列的矩阵
A_1 = A(:,1);
A_2 = A(:,2);
s1 = numel(unique(A_2)); % length(unique(A_2));
count = hist(A_2,unique(A_2));
p = 1; k = 1; q = count(1);
D = work_5(A_1,p,q);
for j = 1:(s1-1)
if (length(D) >= 3)
output = D;
sprintf('%4d',output);
D = [];
p = k + count(j);
q = q + count(j+1);
D = work_5(A_1,p,q);
k = p;
else p = p; q = q + count(j+1);
D = [];
D = work_5(A_1,p,q);
k = k + count(j);
end
end
再问: 还是不行,问题好像还是在for循环上,感觉j = 1/j = 2之后,就直接输出第一组数据,不再循环了。不知道您能不能理解我代码的意思?
再答: work_3(nmat); %多行两列的矩阵
A_1 = A(:,1);
A_2 = A(:,2);
s1 = numel(unique(A_2)) % 告诉我输出结果
count = hist(A_2,unique(A_2));
p = 1; k = 1; q = count(1);
D = work_5(A_1,p,q);
for j = 1:(s1-1)
j
if (length(D) >= 3)
output = D;
sprintf('%4d',output);
p = k + count(j);
q = q + count(j+1);
D = work_5(A_1,p,q);
k = p;
else
p = p;
q = q + count(j+1);
D = work_5(A_1,p,q);
k = k + count(j);
end
end
不行给我全部程序吧。
再问: 您有没有邮箱?
我问题发现了,for循环的确都执行了,但是输出只输出了一次,是本应该得到的所有数据的 最后一组,很奇怪,为什么前n-1组数据为什么没输出。。。
再答: 这里可以上传附件的。
找到问题了,就好解决了。单步走几下看看。
再问: 好像只能上传图片,您帮我看看在for循环里,是不是因为D接收的数据在每次循环下,被覆盖了或者是被清空了,才导致了output只输出最后一组数据。
再答: “D接收的数据在每次循环下,被覆盖了” 难道不是你想要的吗?
再问: 不是,每循环一次的结果我都要,是不是这个地方我的逻辑错了?
再答: 那就每次都打印出来。
或者 D(:,i)=work_5(A_1,p,q); 之类。
work_3(nmat); %多行两列的矩阵
A_1 = A(:,1);
A_2 = A(:,2);
s1 = numel(unique(A_2)); % length(unique(A_2));
count = hist(A_2,unique(A_2));
p = 1; k = 1; q = count(1);
D = work_5(A_1,p,q);
for j = 1:(s1-1)
if (length(D) >= 3)
output = D;
sprintf('%4d',output);
D = [];
p = k + count(j);
q = q + count(j+1);
D = work_5(A_1,p,q);
k = p;
else p = p; q = q + count(j+1);
D = [];
D = work_5(A_1,p,q);
k = k + count(j);
end
end
再问: 还是不行,问题好像还是在for循环上,感觉j = 1/j = 2之后,就直接输出第一组数据,不再循环了。不知道您能不能理解我代码的意思?
再答: work_3(nmat); %多行两列的矩阵
A_1 = A(:,1);
A_2 = A(:,2);
s1 = numel(unique(A_2)) % 告诉我输出结果
count = hist(A_2,unique(A_2));
p = 1; k = 1; q = count(1);
D = work_5(A_1,p,q);
for j = 1:(s1-1)
j
if (length(D) >= 3)
output = D;
sprintf('%4d',output);
p = k + count(j);
q = q + count(j+1);
D = work_5(A_1,p,q);
k = p;
else
p = p;
q = q + count(j+1);
D = work_5(A_1,p,q);
k = k + count(j);
end
end
不行给我全部程序吧。
再问: 您有没有邮箱?
我问题发现了,for循环的确都执行了,但是输出只输出了一次,是本应该得到的所有数据的 最后一组,很奇怪,为什么前n-1组数据为什么没输出。。。
再答: 这里可以上传附件的。
找到问题了,就好解决了。单步走几下看看。
再问: 好像只能上传图片,您帮我看看在for循环里,是不是因为D接收的数据在每次循环下,被覆盖了或者是被清空了,才导致了output只输出最后一组数据。
再答: “D接收的数据在每次循环下,被覆盖了” 难道不是你想要的吗?
再问: 不是,每循环一次的结果我都要,是不是这个地方我的逻辑错了?
再答: 那就每次都打印出来。
或者 D(:,i)=work_5(A_1,p,q); 之类。
matlab: 为什么我的程序中for循环只执行了一次? 谢谢
matlab中如何让循环中的某一句只执行一次?或如何对一个变量初始化一次?
matlab为什么我这个程序不循环
MATLAB for循环求和的问题谢谢了,
MATLAB 编写for循环程序
求matlab程序for循环中怎么保存中间变量
9.当在程序中执行到 _____ 语句时,将结束所在循环语句中循环体的一次执行.
怎样对MATLAB中的for循环进行优化,帮我优化下面的程序
matlab中else if语句只执行了第二句,程序没问题,逻辑上哪里有错误?
matlab中for循环
matlab请问我这个程序为什么不循环
Matlab 循环程序 我实在搞不明白了,