首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相同变量的两个不同数组

相同变量的两个不同数组
EN

Stack Overflow用户
提问于 2014-07-17 19:16:17
回答 1查看 40关注 0票数 0

所以,我有个奇怪的问题。下面是我的代码,它是一个简单的Euler方法,用于集成一个线性ODE系统。

代码语言:javascript
运行
复制
function [V, h, n, b, z] = hodgkin_huxley_CA1(t, Iapp, t_app)

%function based on the CA1 pyramidal neuron model: 

h = zeros(length(t));
n = zeros(length(t));
b = zeros(length(t));
z = zeros(length(t));
V = zeros(length(t));

% Initial conditions
h(1) = 0.9771;
n(1) = 0.0259;
b(1) = 0.1787;
z(1) = 8.0222e-04;
V(1) = -71.2856;

% Euler method
delta_t = t(2) - t(1);
for i=1:(length(t)-1)
    h(i+1) = h(i) + delta_t*feval(@h_prime,V(i),h(i));
    n(i+1) = n(i) + delta_t*feval(@n_prime,V(i),n(i));
    b(i+1) = b(i) + delta_t*feval(@b_prime,V(i),b(i));
    z(i+1) = z(i) + delta_t*feval(@z_prime,V(i),z(i));
    minf = m_inf(V(i));
    pinf = p_inf(V(i));
    ainf = a_inf(V(i));
    if (t(i) >= t_app(1) && t(i) <= t_app(2))
        I = Iapp;
    else I = 0;
    end;
    V(i+1) = V(i) + delta_t*feval(@V_prime,V(i),h(i),n(i),b(i),z(i),minf,pinf,ainf,I);
end;

这个函数返回5个数组,V,h,n,b和z,问题是,如果我使用V(1),V(2),V(3),……,我得到了预期的结果。但是,当我告诉matlab打印整个数组时,我接收到所有的值为0。所以,如果我绘制这个数组,我会得到2条曲线:一条是对的,一条是零。

请注意,这也发生在所有其他变量h,n,b和z上,有人知道会发生什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-17 19:22:11

您的输出应该是向量,但是您正在将它们初始化为方阵。

您可以简单地替换:

代码语言:javascript
运行
复制
h = zeros(length(t));
n = zeros(length(t));
b = zeros(length(t));
z = zeros(length(t));
V = zeros(length(t));

使用

代码语言:javascript
运行
复制
h = zeros(length(t),1);
n = zeros(length(t),1);
b = zeros(length(t),1);
z = zeros(length(t),1);
V = zeros(length(t),1);

使用1输入的zeros函数创建该维的二维方阵。对于两个或多个输入,它将输入解释为所有维度的规范。例如:

代码语言:javascript
运行
复制
>> x = zeros(3)
x =
     0     0     0
     0     0     0
     0     0     0
>> x = zeros(3,1)
x =
     0
     0
     0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24811703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档