早教吧作业答案频道 -->其他-->
MATLAB为什么无法调用这个M文件呢?任意排列问题.MATLAB提供的函数randperm(n),可以产生一个从整数1到整数n的任意排列.编写一个函数来实现randperm(n)函数的功能,即给出一个由任意数组成的行向量
题目详情
MATLAB 为什么无法调用这个M文件呢?
任意排列问题.MATLAB提供的函数randperm(n),可以产生一个从整数1到整数n的任意排列.编写一个函数来实现randperm(n)函数的功能,即给出一个由任意数组成的行向量,然后产生这个行向量元素的任意排列.
function Y=rndprm1(X)
[m,n]=size(X);
if m>1
error('RNDPRM1 accepts as inputs only vectors');
end
Y=[];
l=n;
for i=1:n
k=1+fix(l*rand);
x=X(k);
Y=[Y,x];
X(k)=[];
l=l-1 ;
end
结果就是下面这几种情况
>> Y=rndprm1(5)
Error:File:rndprm1.m Line:1 Column:20
Unexpected MATLAB expression.
>> rndprm1(6)
Error:File:rndprm1.m Line:1 Column:20
Unexpected MATLAB expression.
>> X=7
X =
7
Input argument "X" is undefined.
Error in ==> rndprm1 at 2
[m,n]=size(X);
Error:File:rndprm1.m Line:1 Column:20
Unexpected MATLAB expression.
有发现个问题.重新编写一次后
function Y=rndprm1(X)
%RNDPRM1 用for循环产生一个行向量的任意排列
%RNDPRM1(X)产生行向量X的任意排列
[m,n]=size(X);
if m>1
error('RNDPRM1 accepts as inputs only vectors');
end
Y=[]; %从一个空矩阵开始
l=n; %X的元素个数
for i=1:n
k=1+fix(l*rand); %随机选择Y的下一个元素的位置
x=X(k); %被选择的元素
Y=[Y,x]; %将X添加到Y中
X(k)=[]; %从X中删除x元素
l=l-1 ; %更新X的元素个数
end
这次保存在MATLAB/work文件夹内
>> Y=rndprm1(6)
Y =
6
>> Y=rndprm1(16)
Y =
16
>> rndprm1(16)
ans =
16
>>
万分纠结,好吧,我真的是新学,
任意排列问题.MATLAB提供的函数randperm(n),可以产生一个从整数1到整数n的任意排列.编写一个函数来实现randperm(n)函数的功能,即给出一个由任意数组成的行向量,然后产生这个行向量元素的任意排列.
function Y=rndprm1(X)
[m,n]=size(X);
if m>1
error('RNDPRM1 accepts as inputs only vectors');
end
Y=[];
l=n;
for i=1:n
k=1+fix(l*rand);
x=X(k);
Y=[Y,x];
X(k)=[];
l=l-1 ;
end
结果就是下面这几种情况
>> Y=rndprm1(5)
Error:File:rndprm1.m Line:1 Column:20
Unexpected MATLAB expression.
>> rndprm1(6)
Error:File:rndprm1.m Line:1 Column:20
Unexpected MATLAB expression.
>> X=7
X =
7
Input argument "X" is undefined.
Error in ==> rndprm1 at 2
[m,n]=size(X);
Error:File:rndprm1.m Line:1 Column:20
Unexpected MATLAB expression.
有发现个问题.重新编写一次后
function Y=rndprm1(X)
%RNDPRM1 用for循环产生一个行向量的任意排列
%RNDPRM1(X)产生行向量X的任意排列
[m,n]=size(X);
if m>1
error('RNDPRM1 accepts as inputs only vectors');
end
Y=[]; %从一个空矩阵开始
l=n; %X的元素个数
for i=1:n
k=1+fix(l*rand); %随机选择Y的下一个元素的位置
x=X(k); %被选择的元素
Y=[Y,x]; %将X添加到Y中
X(k)=[]; %从X中删除x元素
l=l-1 ; %更新X的元素个数
end
这次保存在MATLAB/work文件夹内
>> Y=rndprm1(6)
Y =
6
>> Y=rndprm1(16)
Y =
16
>> rndprm1(16)
ans =
16
>>
万分纠结,好吧,我真的是新学,
▼优质解答
答案和解析
看不懂你写的意思,
function p = randperm(n)
[ignore,p] = sort(rand(1,n));
这是那个函数实现的语句,就是先生成一个一维数组,数组长度为n,大小为0与1之间的任意数,然后排序,randperm输出排序的下标,所以就是任意的排序的1到n的数字.
function p = randperm(n)
[ignore,p] = sort(rand(1,n));
这是那个函数实现的语句,就是先生成一个一维数组,数组长度为n,大小为0与1之间的任意数,然后排序,randperm输出排序的下标,所以就是任意的排序的1到n的数字.
看了MATLAB为什么无法调用这个...的网友还看了以下:
大家好!请各位文学才子,帮我出一首藏头诗“我爱陈柔柔”,诗的意思也有爱意的成分大家好!请各位文学才 2020-05-16 …
在平衡二叉树中,(55)。A.任意结点的左、右子树结点数目相同B.任意结点的左、右子树高度相同C.任 2020-05-26 …
在平衡二叉树中,(6)。A.任意节点的左、右子树节点数目相同B.任意节点的左、右子树高度相同C.任意 2020-05-26 …
下面的名字都是取自一些有寓意的成语,把其中隐的含成语写出来:赵文武()下面的名字都是取自一些有寓意 2020-06-11 …
函数f(X)对任意a,b都有f(a+b)=f(a)+f(b)-1,且当X〉0时有f(x)〉1.求证 2020-08-01 …
高中数学问题A∩B=B∩A是集合A交集合B等于集合B交集合A的意思吗,还有别的意思吗A∪B=B∪A 2020-08-02 …
对任意a属于[-1,1]函数f(x)=x^2+(a-4)*x+2-a的值恒大于零,求x的取值范围这 2020-08-02 …
非空集合的运算非空集合G关于运算☆满足:(1)对任意a,b属于G,都有a☆b属于G(2)存在e属于G 2020-11-10 …
非空集合G关于运算⊕满足:(1)对任意a、b∈G,都有a⊕b∈G;(2)存在c∈G,使得对一切a∈G 2020-11-10 …
对于学习方法我们应注意[]A.每个人都有不同的特点,因此要摸索适合自己的学习方法B.为了提高成绩,应 2020-11-15 …