簡體   English   中英

MATLAB:錯誤訂閱的分配維度不匹配

[英]MATLAB: error Subscripted assignment dimension mismatch

我不斷收到x_values行的錯誤“Subscripted assignment dimension mismatch”。 我試過切換括號,但我無法弄明白。 我對MATLAB不是很好,這段代碼超長,所以我不想發布整個內容。

for m = 1:num_part;
    for n = 2:num_steps;
    x_values(m,n) = x_values(m,n-1)+ stride_length .* (cos(step_angle(m,n)));
    y_values(m,n) = y_values(m,n-1)+ stride_length .* (sin(step_angle(m,n)));
    r_values (m,n) = sqrt(x_values(m,n).^2 + y_values(m,n).^2);
    if bound_cross(m)~=0;
        continue;
    elseif bound <= r_values(m,n);
            bound_cross (m,1) = n;
    end
end

正如我bound_cross ,錯誤在變量bound_cross 如果您已按照在注釋中回復的方式將其定義為' bound_cross = [num_part, 1] ',則它僅創建1 * 2元素矩陣。 但是如果你需要20 * 1矩陣,你必須專門定義它。 我要檢查代碼,我使用了一個空矩陣,它運行正常。

num_part = 20;
num_steps = 1000;
stride_length = 100;
bound = 1;
bound_cross = ones(num_part, 1) ;
x_values = zeros(num_part, num_steps);
y_values = x_values;
r_values = x_values;
step_angle = x_values;

for m = 1:num_part;
    for n = 2:num_steps;
        x_values(m,n) = x_values(m,n-1)+ stride_length .* (cos(step_angle(m,n)));
        y_values(m,n) = y_values(m,n-1)+ stride_length .* (sin(step_angle(m,n)));
        r_values (m,n) = sqrt(x_values(m,n).^2 + y_values(m,n).^2);
        if bound_cross(m)~=0;
            continue;
        elseif bound <= r_values(m,n);
            bound_cross (m,1) = n;
        end
    end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM