Re: [問題] 關於結構陣列的問題已回收

看板MATLAB作者 (alen)時間16年前 (2009/04/14 20:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Kira76 (一分牌技九分運)》之銘言: : 最近上課遇到兩個問題,其實MATLAB基本操作我都還會,可是加入迴圈我就想不出來了 : 題目如下: : QUESTION A : 撰寫M檔案將下列資料寫入一結構陣列 SteelBar : No. unit_weight diameter : 6 2.25 19.1 : 7 3.04 22.2 : 8 3.98 25.4 : 9 5.08 28.7 : 並使用for迴圈與if判斷找出No.8的unit weight : QUESTION B : 撰寫一函數定義結構陣列SteelBar並計算號數為x的面積(x為使用者輸入之值) : 懇請高手教導我=_= : 感激不盡 QUESTION A Step1:建立m-file ,檔名自訂 Step2:以下為程式內容 clc clear No = [ 6,7,8,9 ]; unit_weight = [ 2.25,3.04,3.98,5.08 ]; diameter = [ 19.1,22.2,25.4,28.7 ]; for i = 1 : length(No) SteelBar(i).No = No(i); SteelBar(i).unit_weight = unit_weight(i); SteelBar(i).diameter = diameter(i); if SteelBar(i).No==8 %%這行為要找的No result = SteelBar(i).unit_weight end end Step3:result即為你要的結果 QUESTION B Step1:建立m-file ,檔名為SteelBar.m Step2:以下為程式容 function [ output_args ] = SteelBar( x ) No = [ 6,7,8,9 ]; unit_weight = [ 2.25,3.04,3.98,5.08 ]; diameter = [ 19.1,22.2,25.4,28.7 ]; for i = 1 : length(No) SteelBar(i).No = No(i); SteelBar(i).unit_weight = unit_weight(i); SteelBar(i).diameter = diameter(i); if SteelBar(i).No==x output_args = SteelBar(i).diameter^2*pi; end end if ~exist('output_args') %%如果輸入的No沒有找到的話則輸出NaN output_args = nan; end Step3:然後在命令列打 SteelBar(6) , 得到的ans即為No.6的面積 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.20.160
文章代碼(AID): #19v7rCYQ (MATLAB)
文章代碼(AID): #19v7rCYQ (MATLAB)