matlab 有没有直接取向量前n个数据的语句

一般的解决办法是对向量A做A(1:n)
但是我不是对一个向量操作,而是一个返回值为向量的表达式操作,不希望出现中间变量。
比如,function(var)返回的是一个向量,但是显然function(var)(1:n)是非法语句
自己解决了,其实我要操作的是一个字符串。
我用strcat(strread(function(var),'%c',length(function(var))-n)') 解决掉了
虽然麻烦了点,但是不会出现中间变量。

你这样,不是运行了两次
function(var)
吗?
得与失之间,你比较了吗?
你如果只要1:n里面的元素,你不希望有中间变量,也就是说n个以后的值,你并不想要.
你直接在function里面返回的时候,直接取1:n返回不就得了.
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-11
可以先令一个向量var1=var(1:n),然后再运行,不过要注意向量维数的统一

matlab 有没有直接取向量前n个数据的语句
你如果只要1:n里面的元素,你不希望有中间变量,也就是说n个以后的值,你并不想要.你直接在function里面返回的时候,直接取1:n返回不就得了.

matlab中一个一维的行向量怎么提取它的前n个值!!!急等
比如你的向量名是vector,那么temp=vector(1:n)就是提取vector的前n个值,并把它存放在变量temp中。

matlab 中怎么把找出几个数的最大值
取向量A中前N个最大值及其位置,最大值存储在maxV,位置存储在maxP sortA=sort(A,'descend' );%由大到小排列 maxV=sortA(1:N);maxP=find(A>=sortA(N));maxP=maxP(1:N);%截断

matlab 中想在一定分布的数据中随机采样N个数据,怎么做呢
>>r1 = binornd(n,1.\/n)r1 =2 1 0 1 1 2>>r2 = binornd(n,1.\/n,[1 6])r2 =0 1 2 1 3 14.1.2 正态分布的随机数据的产生命令 参数为μ,σ的正态分布的随机数据函数normrnd格式R = normrnd(MU,SIGMA) %返回均值为MU,标准差为SIGMA的正态分布的随机数据,R可以是向量或矩阵.R = normrnd(...

MATLAB里面怎么提取一个行向量的某几列元素?
首先,打开MATLAB,创建一个矩阵,例如a=[146;789],这将创建一个2x3的矩阵。接着,通过reshape函数将其转换为行向量。输入b=reshape(a,1,6),这里的1表示行数,6表示元素总数,这会将矩阵a的元素展平成一个1行6列的行向量。执行这个命令后,你会看到矩阵a已经被转换成了行向量,显示在屏幕上...

如何用matlab找出矩阵每一列向量第一个0元素的位置以及最后一个0元素...
zero_index=find(A==0) %%挑出所有的0的位置 k=length(zero_index) %%所有0的个数 first_zero_index=zero_index(1); %%第一个0元素的位置 last_zero_index=zero_index(k); %%最后一个0元素的位置

在matlab中如何确定向量中元素的最大值,并输出其序号
m,i] = max(A)。其中A是行\/列向量,m是最大值,i是最大值元素的索引即序号。注意:如果A中存在多个并列的最大值,上面的代码只会得到第一个最大元素的位置。因此,通用的写法如下:i = find(A==max(A))如果拓展到二维矩阵,写法也类似:[i,j] = find(A==max(max(A)))示例如下:...

MATLAB 如何删除向量中的前N个元素?
x是给定的向量;x(1:N) =[];就是删除前面的N个元素 例如:>> x=1:10 x = 1 2 3 4 5 6 7 8 9 10 >> x(1:3)=[]x = 4 5 6 7 8 9 10

MATLAB中如何取数组前10个
a = rand(1,100);disp(std(a(1:10)));disp(std(a(1:50)));disp(std(a(1:100)));a(1:n)是取前n个数 std是标准差

MATLAB中,怎么获取一个向量中最大的N个元素,并获取它们所在的位置
v=rand(1,5)[mv mi]=max(v)mv为最大值,mi为最大值索引,v(mi)=mv [sv si]=sort(v,2,'descend')si为从大到小的序列,比如要去最大的3个数就是v(si(1:3))

相似回答