Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab从数组中设置参数_Matlab_For Loop_Simulink - Fatal编程技术网

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

在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-1
P
矩阵的
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)) );