matlab中如何提取一个向量中的元素作为一个变量的下标?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何提取一个向量中的元素作为一个变量的下标?相关的知识,希望对你有一定的参考价值。
比如 a=1 7 6 4 5 10 2 9 8 3;
我要实现D17 D76 D64,就是把上面的向量中相邻的2个元素作为D的下标,该怎么实现?请高手指教。回答正确的我追加悬赏分!
for i=1:2:length(a)
index=a(i)*10+a(i+1);
eval(['D',num2str(index),'=',num2str(i)]); %赋的值,请将num2str(i)中的i修改成相应的值即可。
end
whos 参考技术A 定义如下函数:
function makeVariable(a,k,strRealVar)
N=length(a);
if k<1 return;
if k>N-1 return;
cmd=sprintf("D%d%d=%s",k,k+1,strRealVar);
eval(cmd);
调用实例:
生成变量D76并将数值99.2赋值给它。
makeVariable(a,2,'99'); 参考技术B 百度hi交流本回答被提问者采纳
matlab如何提取矩阵中的每一列作为新的变量
一个26行,25列的矩阵,我想把每一列提取出来,r1=[第一列],r2=[第二列]……r25=[第二十五列]
A = rand(26, 25); % 生成一个26行25列的随机矩阵A[n, m] = size(A); % 获取A的行数n和列数m
r = cell(1, m); % 创建一个长度为m的cell数组,用于存储每一列的数据
for i = 1:m
ri = A(:, i); % 将第i列数据存储到ri中
end
% 将r1到r25存储到变量r1到r25中
for i = 1:m
eval(['r', num2str(i), ' = ri;']);
end
其中,第一个循环将矩阵每一列提取出来,存储到一个长度为m的cell数组r中。第二个循环将r中的每个元素存储到对应的r1到r25变量中,使用了MATLAB的eval函数来动态生成变量名。
需要注意的是,使用eval函数动态生成变量名是不推荐的,因为容易引起代码的可读性和可维护性问题。建议使用cell数组或结构体等数据类型来存储和操作多个变量。 参考技术A for i=1:25
a(i)=A(:,i);
end
以上是关于matlab中如何提取一个向量中的元素作为一个变量的下标?的主要内容,如果未能解决你的问题,请参考以下文章