[英]Storing non-zero integers from one matrix into another
我試圖創建一個循環,該循環讀取矩陣(A)並將非零值存儲到新矩陣(w)中。 我不確定我的代碼有什么問題。
function [d,w] = matrix_check(A)
[nrow ncol] = size(A);
total = 0;
for i = 1:nrow
for j = 1:ncol
if A(i,j) ~= 0
total = total + 1;
end
end
end
d = total;
w = [];
for i = 1:nrow
for j = 1:ncol
if A(i,j) ~= 0
w = [A(i,j);w];
end
end
end
第二個循環不起作用(至少它沒有打印出w的結果)。
第二個循環正在工作。 我猜你在做什么:
>> matrix_check(A)
並不是:
>> [d, w] = matrix_check(A)
除非另有說明,否則MATLAB將僅返回第一個輸出。
順便說一句,您可以利用MATLAB的邏輯索引完成任務,並利用(通常更快)的數組操作而不是循環。
d = sum(sum(A ~= 0));
w = A(A ~= 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.