[英]Unable to Add Column to Matrix in GNU Octave
我正在寫一個 function,truthtable.m,我可以在其中輸入一個包含一系列二進制輸入的矩陣,然后輸出一個 function 的真值表。 我有一個工作 function,binvargen.m,它為給定位數的每個可能輸入生成一個二進制字符串,並將其輸入到程序中。
我似乎無法創建一個包含輸入和 output 的新矩陣。 我嘗試在輸入矩陣上使用 reshape,認為我可以將輸出作為額外的列添加到它以形成我的 output,但它會拋出一個沒有解釋的錯誤,只是說它無法調整矩陣的大小。
我還嘗試從頭開始創建一個新矩陣,並將輸入矩陣輸入其中,然后將輸出輸入其中。 然而,當我這樣做時,它只是打印輸入矩陣並完全忽略 output。 我不知道我做錯了什么。
input = [000;
001;
010;
011;
100;
101;
110;
111;]
這是我當前的代碼,刪除了有問題的部分:
function output = truthtable(input)
tests = size(input,1);
variables = size(input,2);
for counttest = 1:tests,
for countvars = 1:variables,
out(countvars) = str2num(input(counttest,countvars));
endfor
output(counttest,variables+1) = f1a(out(:));
endfor
output 是:
[0, 0, 0, 0, 1, 1, 1, 1]
我希望 output(counttest,1:variables) 與輸入相同。 換句話說,應該輸入 output,但在末尾添加了一個額外的列。 output 應如下所示:
[0000;
0010;
0100;
0110;
1001;
1011;
1101;
1111;]
幫助表示贊賞。
在經歷了很多挫折之后,我上床睡覺,今天用它好好休息,喝咖啡玩它。 燒杯的回答並沒有完全滿足我的需要,但它確實為我指明了正確的方向。 我的結尾是這樣的:
function output = truthtable(input)
tests = size(input,1);
variables = size(input,2);
for counttest = 1:tests,
for countvars = 1:variables,
out(countvars) = str2num(input(counttest,countvars));
endfor
output(counttest,:) = strcat(input(counttest,:),"=",num2str(f1a(out(:))));
endfor
我仍然不太確定我之前做錯了什么,但是累了確實會導致愚蠢的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.