Matlab从数组中设置参数
在Matlab中,为了改变我做的一个块的值Matlab从数组中设置参数,matlab,for-loop,simulink,Matlab,For Loop,Simulink,在Matlab中,为了改变我做的一个块的值 set_param('model/V','Amplitude','100') 而V的值是100。但如果我这样做了 for i=1:10 set_param('model/V','Amplitude','P(i)') ... end 它将V的值存储为p(i)。但是为了访问20-by-1P矩阵的i-th元素,我需要通过P(i)引用它。我的错误是什么?使用以下命令将值更改为字符串:- set_param('model/V','Ampl
set_param('model/V','Amplitude','100')
而V
的值是100。但如果我这样做了
for i=1:10
set_param('model/V','Amplitude','P(i)')
...
end
它将
V
的值存储为p(i)
。但是为了访问20-by-1P
矩阵的i
-th元素,我需要通过P(i)
引用它。我的错误是什么?使用以下命令将值更改为字符串:-
set_param('model/V','Amplitude',num2str(P(i)) );
它还将“型号/V”的值设置为p(20),即最后一个
您可能也希望在当前块之间循环
比如:(举个例子)
对于
model/V1,model/V2,…model/V20
噢,它起作用了。但是为什么我需要把它转换成字符串呢?只是wondering@HS大多数simulink块的ObjectParameters
值就是这样设置的。这个答案假设您想在参数对话框中输入变量P的第i个元素的数值。通常这不是你想要做的。通常,您希望通过将字符串“P(i)”放入对话框(这是原始问题中的代码所做的)来参数化模型,然后,假设在模拟模型时,变量的P和i存在于MATLAB工作区中,Simulink将在此时拾取数值。
set_param(['model/V' num2str(i)],'Amplitude',num2str(P(i)) );