Matlab编程 寻找 行列相关的一个程序问题, 与FOR IF While 循环有关 。

给定了一个由 0 与 非0 数字组成的txt文件,要求为下:1,首先随即找到一个非0 的数字 ,找到他的位置,并且搜索与他行(列)相同的非0数字,将其找到后 ,存入已经预先设置好的两个矩阵 JZ1 JZ2 (包括第一个非0 数字) ,按列排列,之后删除两个矩阵中的第一个数字(第一个非0 数字),并将它至 0 。JZ2 不动2,开始搜索JZ1 第一个数字 找到同列(行)的非0 数字,加到JZ1 JZ2 的尾部 ,再将其至0 ,并删除在JZ1中的位置。3,再次按照上述要求搜索,若是上一次循环到行下一次为列4,若是JZ1 找不到同行或列的非0 数字,则删去继续下一个 直到JZ1 为空 ,将JZ2 单独放入一个cell中。5,开始第一步并重复后几步,直到全部数字为0 ,6,提取所有的 JZ2 结束。
若是有兴趣,我可以有偿求教!

第1个回答  2018-09-19
分支 if...else 循环 for/wend 函数调用 m文件或内部函数调用 例子: %-----------------存储为FindNo1.m文件------------------------- % 功能:求满足n! > realmax的最小n值,输出n值和(n-1)! function FindNo1(realmax) n=1; while Factorial(n)<realmax n=n+1; end; fprintf('满足条件的n值为 %d\n',n); fprintf('n-1阶乘为 %d\n',Factorial(n-1)); end %阶乘 function [ret]=Factorial(n) %参数过滤略 if n==0 ret=1;%0!=1 else ret=n*Factorial(n-1); end; end %----------------------------------------在matlab中输入FindNo1(100)等即可调用函数---------
相似回答